[cfe] Avoid looking up unneeded operator == for EqualsNull node
Closes #47223
Change-Id: I8ad80c38ed1454a0c6e8088e98cd6db5d7d19930
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213540
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 3f1b27e..a5faee7 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -1381,11 +1381,6 @@
reportNonNullableInNullAwareWarningIfNeeded(
lhsResult.inferredType, "??", node.left.fileOffset);
- Member equalsMember = inferrer
- .findInterfaceMember(
- lhsResult.inferredType, equalsName, node.fileOffset)
- .member!;
-
// This ends any shorting in `node.left`.
Expression left = lhsResult.expression;
@@ -1420,9 +1415,7 @@
VariableDeclaration variable =
createVariable(left, lhsResult.inferredType);
Expression equalsNull = inferrer.createEqualsNull(
- lhsResult.expression.fileOffset,
- createVariableGet(variable),
- equalsMember);
+ lhsResult.expression.fileOffset, createVariableGet(variable));
VariableGet variableGet = createVariableGet(variable);
if (inferrer.library.isNonNullableByDefault &&
!identical(nonNullableLhsType, originalLhsType)) {
@@ -3130,10 +3123,6 @@
receiverType, node.propertyName, writeTarget, rhs,
forEffect: node.forEffect, valueType: writeType);
- Member equalsMember = inferrer
- .findInterfaceMember(readType, equalsName, node.fileOffset)
- .member!;
-
DartType nonNullableReadType = readType.toNonNull();
DartType inferredType = inferrer.typeSchemaEnvironment
.getStandardUpperBound(
@@ -3145,8 +3134,7 @@
//
// let v1 = o in v1.a == null ? v1.a = b : null
//
- Expression equalsNull =
- inferrer.createEqualsNull(node.fileOffset, read, equalsMember);
+ Expression equalsNull = inferrer.createEqualsNull(node.fileOffset, read);
ConditionalExpression conditional = new ConditionalExpression(equalsNull,
write, new NullLiteral()..fileOffset = node.fileOffset, inferredType)
..fileOffset = node.fileOffset;
@@ -3160,7 +3148,7 @@
//
VariableDeclaration readVariable = createVariable(read, readType);
Expression equalsNull = inferrer.createEqualsNull(
- node.fileOffset, createVariableGet(readVariable), equalsMember);
+ node.fileOffset, createVariableGet(readVariable));
VariableGet variableGet = createVariableGet(readVariable);
if (inferrer.library.isNonNullableByDefault &&
!identical(nonNullableReadType, readType)) {
@@ -3194,10 +3182,6 @@
.inferExpression(node.write, typeContext, true, isVoidAllowed: true);
inferrer.flowAnalysis.ifNullExpression_end();
- Member equalsMember = inferrer
- .findInterfaceMember(readType, equalsName, node.fileOffset)
- .member!;
-
DartType originalReadType = readType;
DartType nonNullableReadType = originalReadType.toNonNull();
DartType inferredType = inferrer.typeSchemaEnvironment
@@ -3210,8 +3194,7 @@
//
// a == null ? a = b : null
//
- Expression equalsNull =
- inferrer.createEqualsNull(node.fileOffset, read, equalsMember);
+ Expression equalsNull = inferrer.createEqualsNull(node.fileOffset, read);
replacement = new ConditionalExpression(
equalsNull,
writeResult.expression,
@@ -3225,7 +3208,7 @@
//
VariableDeclaration readVariable = createVariable(read, readType);
Expression equalsNull = inferrer.createEqualsNull(
- node.fileOffset, createVariableGet(readVariable), equalsMember);
+ node.fileOffset, createVariableGet(readVariable));
VariableGet variableGet = createVariableGet(readVariable);
if (inferrer.library.isNonNullableByDefault &&
!identical(nonNullableReadType, originalReadType)) {
@@ -3568,10 +3551,6 @@
DartType readType = readResult.inferredType;
inferrer.flowAnalysis.ifNullExpression_rightBegin(read, readType);
- Member equalsMember = inferrer
- .findInterfaceMember(readType, equalsName, node.testOffset)
- .member!;
-
writeIndex = inferrer.ensureAssignable(
writeIndexType, indexResult.inferredType, writeIndex,
whyNotPromoted: whyNotPromotedIndex);
@@ -3623,8 +3602,7 @@
// let indexVariable = a in
// o[indexVariable] == null ? o.[]=(indexVariable, b) : null
//
- Expression equalsNull =
- inferrer.createEqualsNull(node.testOffset, read, equalsMember);
+ Expression equalsNull = inferrer.createEqualsNull(node.testOffset, read);
ConditionalExpression conditional = new ConditionalExpression(equalsNull,
write, new NullLiteral()..fileOffset = node.testOffset, inferredType)
..fileOffset = node.testOffset;
@@ -3656,7 +3634,7 @@
//
VariableDeclaration readVariable = createVariable(read, readType);
Expression equalsNull = inferrer.createEqualsNull(
- node.testOffset, createVariableGet(readVariable), equalsMember);
+ node.testOffset, createVariableGet(readVariable));
VariableDeclaration writeVariable =
createVariable(write, const VoidType());
VariableGet variableGet = createVariableGet(readVariable);
@@ -3701,10 +3679,6 @@
DartType readIndexType =
inferrer.getIndexKeyType(readTarget, inferrer.thisType!);
- Member equalsMember = inferrer
- .findInterfaceMember(readType, equalsName, node.testOffset)
- .member!;
-
ObjectAccessTarget writeTarget = node.setter != null
? new ObjectAccessTarget.interfaceMember(node.setter!,
isPotentiallyNullable: false)
@@ -3807,8 +3781,7 @@
// super[v1] == null ? super.[]=(v1, b) : null
//
assert(valueVariable == null);
- Expression equalsNull =
- inferrer.createEqualsNull(node.testOffset, read, equalsMember);
+ Expression equalsNull = inferrer.createEqualsNull(node.testOffset, read);
replacement = new ConditionalExpression(equalsNull, write,
new NullLiteral()..fileOffset = node.testOffset, inferredType)
..fileOffset = node.testOffset;
@@ -3826,7 +3799,7 @@
VariableDeclaration readVariable = createVariable(read, readType);
Expression equalsNull = inferrer.createEqualsNull(
- node.testOffset, createVariableGet(readVariable), equalsMember);
+ node.testOffset, createVariableGet(readVariable));
VariableDeclaration writeVariable =
createVariable(write, const VoidType());
VariableGet readVariableGet = createVariableGet(readVariable);
@@ -3925,10 +3898,6 @@
DartType readType = readResult.inferredType;
inferrer.flowAnalysis.ifNullExpression_rightBegin(read, readType);
- Member equalsMember = inferrer
- .findInterfaceMember(readType, equalsName, node.testOffset)
- .member!;
-
writeIndex = inferrer.ensureAssignable(
writeIndexType, indexResult.inferredType, writeIndex);
@@ -3974,8 +3943,7 @@
// ? receiverVariable.[]=(indexVariable, b) : null
//
assert(valueVariable == null);
- Expression equalsNull =
- inferrer.createEqualsNull(node.testOffset, read, equalsMember);
+ Expression equalsNull = inferrer.createEqualsNull(node.testOffset, read);
replacement = new ConditionalExpression(equalsNull, write,
new NullLiteral()..fileOffset = node.testOffset, inferredType)
..fileOffset = node.testOffset;
@@ -3994,7 +3962,7 @@
//
VariableDeclaration readVariable = createVariable(read, readType);
Expression equalsNull = inferrer.createEqualsNull(
- node.testOffset, createVariableGet(readVariable), equalsMember);
+ node.testOffset, createVariableGet(readVariable));
VariableDeclaration writeVariable =
createVariable(write, const VoidType());
VariableGet readVariableGet = createVariableGet(readVariable);
@@ -5697,10 +5665,6 @@
DartType readType = readResult.inferredType;
inferrer.flowAnalysis.ifNullExpression_rightBegin(read, readType);
- Member readEqualsMember = inferrer
- .findInterfaceMember(readType, equalsName, node.testOffset)
- .member!;
-
VariableDeclaration? readVariable;
if (!node.forEffect) {
readVariable = createVariable(read, readType);
@@ -5741,7 +5705,7 @@
//
Expression readEqualsNull =
- inferrer.createEqualsNull(node.readOffset, read, readEqualsMember);
+ inferrer.createEqualsNull(node.readOffset, read);
replacement = new ConditionalExpression(readEqualsNull, write,
new NullLiteral()..fileOffset = node.writeOffset, inferredType)
..fileOffset = node.writeOffset;
@@ -5756,8 +5720,8 @@
//
assert(readVariable != null);
- Expression readEqualsNull = inferrer.createEqualsNull(
- receiverVariable.fileOffset, read, readEqualsMember);
+ Expression readEqualsNull =
+ inferrer.createEqualsNull(receiverVariable.fileOffset, read);
VariableGet variableGet = createVariableGet(readVariable!);
if (inferrer.library.isNonNullableByDefault &&
!identical(nonNullableReadType, readType)) {
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 99d410d..9e2f6f5 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -1872,15 +1872,7 @@
}
NullAwareGuard createNullAwareGuard(VariableDeclaration variable) {
- Member? equalsMember =
- findInterfaceMember(variable.type, equalsName, variable.fileOffset)
- .member;
- // Ensure operator == member even for `Never`.
- equalsMember ??= findInterfaceMember(const DynamicType(), equalsName, -1,
- instrumented: false)
- .member!;
- return new NullAwareGuard(
- variable, variable.fileOffset, equalsMember, this);
+ return new NullAwareGuard(variable, variable.fileOffset, this);
}
ExpressionInferenceResult wrapExpressionInferenceResultInProblem(
@@ -4490,10 +4482,8 @@
}
/// Creates a `e == null` test for the expression [left] using the
- /// [fileOffset] as file offset for the created nodes and [equalsMember] as
- /// the interface target of the created method invocation.
- Expression createEqualsNull(
- int fileOffset, Expression left, Member equalsMember) {
+ /// [fileOffset] as file offset for the created nodes.
+ Expression createEqualsNull(int fileOffset, Expression left) {
return new EqualsNull(left)..fileOffset = fileOffset;
}
}
@@ -4827,20 +4817,15 @@
/// The file offset used for the null-test.
int _nullAwareFileOffset;
- /// The [Member] used for the == call.
- final Member _nullAwareEquals;
-
final TypeInferrerImpl _inferrer;
- NullAwareGuard(this._nullAwareVariable, this._nullAwareFileOffset,
- this._nullAwareEquals, this._inferrer)
+ NullAwareGuard(
+ this._nullAwareVariable, this._nullAwareFileOffset, this._inferrer)
// ignore: unnecessary_null_comparison
: assert(_nullAwareVariable != null),
// ignore: unnecessary_null_comparison
assert(_nullAwareFileOffset != null),
// ignore: unnecessary_null_comparison
- assert(_nullAwareEquals != null),
- // ignore: unnecessary_null_comparison
assert(_inferrer != null) {
// Ensure the initializer of [_nullAwareVariable] is promoted to
// non-nullable.
@@ -4869,8 +4854,8 @@
_inferrer.flowAnalysis.nullAwareAccess_end();
// End non-nullable promotion of the initializer of [_nullAwareVariable].
_inferrer.flowAnalysis.nullAwareAccess_end();
- Expression equalsNull = _inferrer.createEqualsNull(_nullAwareFileOffset,
- createVariableGet(_nullAwareVariable), _nullAwareEquals);
+ Expression equalsNull = _inferrer.createEqualsNull(
+ _nullAwareFileOffset, createVariableGet(_nullAwareVariable));
ConditionalExpression condition = new ConditionalExpression(
equalsNull,
new NullLiteral()..fileOffset = _nullAwareFileOffset,
@@ -4883,8 +4868,7 @@
@override
String toString() =>
- 'NullAwareGuard($_nullAwareVariable,$_nullAwareFileOffset,'
- '$_nullAwareEquals)';
+ 'NullAwareGuard($_nullAwareVariable,$_nullAwareFileOffset)';
}
/// The result of an expression inference that is guarded with a null aware
diff --git a/pkg/front_end/testcases/general/issue47223a.dart b/pkg/front_end/testcases/general/issue47223a.dart
new file mode 100644
index 0000000..2191ad1
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223a.dart
@@ -0,0 +1,9 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+void test() {
+ (throw "some value") ?? "some other value";
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47223a.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47223a.dart.textual_outline.expect
new file mode 100644
index 0000000..31c91a2
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223a.dart.textual_outline.expect
@@ -0,0 +1,2 @@
+void test() {}
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47223a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue47223a.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..4742c78
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223a.dart.textual_outline_modelled.expect
@@ -0,0 +1,2 @@
+main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/general/issue47223a.dart.weak.expect b/pkg/front_end/testcases/general/issue47223a.dart.weak.expect
new file mode 100644
index 0000000..1640c03
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223a.dart.weak.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47223a.dart:6:4: Warning: Operand of null-aware operation '??' has type 'Never' which excludes null.
+// (throw "some value") ?? "some other value";
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ let final Never #t1 = throw "some value" in #t1 == null ?{core::String} "some other value" : #t1;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47223a.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47223a.dart.weak.outline.expect
new file mode 100644
index 0000000..d7d3d2f
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223a.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/issue47223a.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47223a.dart.weak.transformed.expect
new file mode 100644
index 0000000..1640c03
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223a.dart.weak.transformed.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47223a.dart:6:4: Warning: Operand of null-aware operation '??' has type 'Never' which excludes null.
+// (throw "some value") ?? "some other value";
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ let final Never #t1 = throw "some value" in #t1 == null ?{core::String} "some other value" : #t1;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47223b.dart b/pkg/front_end/testcases/general/issue47223b.dart
new file mode 100644
index 0000000..8528113
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223b.dart
@@ -0,0 +1,9 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+void test() {
+ (throw "some value").foo ??= "foo";
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47223b.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47223b.dart.textual_outline.expect
new file mode 100644
index 0000000..31c91a2
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223b.dart.textual_outline.expect
@@ -0,0 +1,2 @@
+void test() {}
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47223b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue47223b.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..4742c78
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223b.dart.textual_outline_modelled.expect
@@ -0,0 +1,2 @@
+main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/general/issue47223b.dart.weak.expect b/pkg/front_end/testcases/general/issue47223b.dart.weak.expect
new file mode 100644
index 0000000..13e925e
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223b.dart.weak.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47223b.dart:6:24: Warning: Operand of null-aware operation '??=' has type 'Never' which excludes null.
+// (throw "some value").foo ??= "foo";
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String} #t1{Never}.foo = "foo" : null;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47223b.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47223b.dart.weak.outline.expect
new file mode 100644
index 0000000..d7d3d2f
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223b.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/issue47223b.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47223b.dart.weak.transformed.expect
new file mode 100644
index 0000000..13e925e
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47223b.dart.weak.transformed.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47223b.dart:6:24: Warning: Operand of null-aware operation '??=' has type 'Never' which excludes null.
+// (throw "some value").foo ??= "foo";
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String} #t1{Never}.foo = "foo" : null;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30624.dart b/pkg/front_end/testcases/inference/bug30624.dart
index c074277..341d1e5 100644
--- a/pkg/front_end/testcases/inference/bug30624.dart
+++ b/pkg/front_end/testcases/inference/bug30624.dart
@@ -9,21 +9,21 @@
class C<E> {
void barA([int cmp(E a, E b)]) {
- /*@ typeArgs=C::E* */ foo(this, cmp /*@target=Object.==*/ ?? _default);
+ /*@ typeArgs=C::E* */ foo(this, cmp ?? _default);
}
void barB([int cmp(E a, E b)]) {
/*@ typeArgs=C::E* */ foo(
- this, cmp /*@target=Object.==*/ ?? (_default as int Function(E, E)));
+ 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 /*@target=Object.==*/ ?? v);
+ /*@ typeArgs=C::E* */ foo(this, cmp ?? v);
}
void barD([int cmp(E a, E b)]) {
- foo<E>(this, cmp /*@target=Object.==*/ ?? _default);
+ foo<E>(this, cmp ?? _default);
}
void barE([int cmp(E a, E b)]) {
diff --git a/pkg/front_end/testcases/inference/bug32291.dart b/pkg/front_end/testcases/inference/bug32291.dart
index c71cdb6..782a12c 100644
--- a/pkg/front_end/testcases/inference/bug32291.dart
+++ b/pkg/front_end/testcases/inference/bug32291.dart
@@ -12,7 +12,7 @@
var /*@ type=Iterable<List<String*>*>* */ i1 =
l. /*@target=Iterable.map*/ /*@ typeArgs=List<String*>* */ map(
/*@ returnType=List<String*>* */ (/*@ type=List<String*>* */ ll) =>
- ll /*@target=List.==*/ ?? /*@ typeArgs=String* */ []);
+ ll ?? /*@ typeArgs=String* */ []);
var /*@ type=Iterable<int*>* */ i2 =
i1. /*@target=Iterable.map*/ /*@ typeArgs=int* */ map(
/*@ returnType=int* */ (List<String> l) =>
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart b/pkg/front_end/testcases/inference/future_then_ifNull.dart
index e3927d5..5b67f07 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart
@@ -18,20 +18,18 @@
MyFuture<int> f;
Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
/*@ returnType=Future<int*>* */ (/*@ type=int* */ x) async =>
- x /*@target=num.==*/ ?? await new Future<int>.value(3));
+ x ?? await new Future<int>.value(3));
Future<int> t2 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
/*@returnType=FutureOr<int*>**/ (/*@ type=int* */ x) async {
- return /*info:DOWN_CAST_COMPOSITE*/ await x /*@target=num.==*/ ??
- new Future<int>.value(3);
+ 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 /*@target=num.==*/ ?? new Future<int>.value(3));
+ 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 /*@target=num.==*/ ??
- new Future<int>.value(3);
+ return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
});
}
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 bcc3b3f..ea24047 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart
@@ -7,8 +7,7 @@
abstract class C<E> {
void sort([int compare(E a, E b)]) {
- /*@ typeArgs=C::E* */ sort2(
- this, compare /*@target=Object.==*/ ?? _compareAny);
+ /*@ typeArgs=C::E* */ sort2(this, compare ?? _compareAny);
}
static int _compareAny(a, b) {
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 51b65c1..c8f9c85 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
@@ -25,7 +25,7 @@
/*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -46,7 +46,7 @@
/*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 = /*@target=Test.member*/ /*@target=Test.member*/
- member /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ member ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = /*@target=Test.member*/ /*@target=Test.member*/
member /*@target=B.+*/ +=
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 9de089d..7892af4 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
@@ -16,7 +16,7 @@
var /*@ type=int* */ v1 = /*@target=Test1.t*/ t = getInt();
var /*@ type=int* */ v4 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=int* */ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
/*@target=num.+*/ += getInt();
@@ -41,13 +41,13 @@
var /*@ type=double* */ v3 = /*@target=Test2.t*/ t = getDouble();
var /*@ type=num* */ v4 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
/*@target=num.+*/ += getInt();
@@ -74,7 +74,7 @@
var /*@ type=double* */ v3 = /*@target=Test3.t*/ t = getDouble();
var /*@ type=double* */ v6 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
/*@target=double.+*/ += getInt();
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 b1840b1..f72d8ca 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
@@ -31,7 +31,7 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/
+
??= /*@ typeArgs=B* */ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
@@ -56,7 +56,7 @@
var /*@ type=B* */ v2 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/
+
??= /*@ typeArgs=B* */ f();
var /*@ type=B* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
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 4685ee6..f9e36a6 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
@@ -31,7 +31,7 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=A.==*/
+ /*@ typeArgs=Index* */ f()]
??= /*@ typeArgs=B* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
@@ -56,7 +56,7 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=A.==*/
+ /*@ typeArgs=Index* */ f()]
??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
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 469bb25..d42816b 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
@@ -29,7 +29,7 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=A.==*/
+ /*@ typeArgs=Index* */ f()]
??= /*@ typeArgs=B* */ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
@@ -54,7 +54,7 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=A.==*/
+ /*@ typeArgs=Index* */ f()]
??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v4 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
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 8123404..56ebaa0 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local.dart
@@ -22,7 +22,7 @@
B local;
local = /*@ typeArgs=B* */ f();
- local /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ local ??= /*@ typeArgs=B* */ f();
local /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -37,7 +37,7 @@
var /*@ type=B* */ v1 = local = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- local /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ local ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = local /*@target=B.+*/ += /*@ typeArgs=C* */ f();
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 8dc2a3e..282340c 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
@@ -12,7 +12,7 @@
void test1(int t) {
var /*@ type=int* */ v1 = t = getInt();
- var /*@ type=int* */ v4 = t /*@target=num.==*/ ??= getInt();
+ var /*@ type=int* */ v4 = t ??= getInt();
var /*@ type=int* */ v7 = t /*@target=num.+*/ += getInt();
@@ -29,11 +29,11 @@
var /*@ type=double* */ v3 = t = getDouble();
- var /*@ type=num* */ v4 = t /*@target=num.==*/ ??= getInt();
+ var /*@ type=num* */ v4 = t ??= getInt();
- var /*@ type=num* */ v5 = t /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = t ??= getNum();
- var /*@ type=num* */ v6 = t /*@target=num.==*/ ??= getDouble();
+ var /*@ type=num* */ v6 = t ??= getDouble();
var /*@ type=num* */ v7 = t /*@target=num.+*/ += getInt();
@@ -50,7 +50,7 @@
void test3(double t) {
var /*@ type=double* */ v3 = t = getDouble();
- var /*@ type=double* */ v6 = t /*@target=num.==*/ ??= getDouble();
+ var /*@ type=double* */ v6 = t ??= getDouble();
var /*@ type=double* */ v7 = t /*@target=double.+*/ += getInt();
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 c112d9c..24d478e 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
@@ -24,7 +24,7 @@
static void test(Test t) {
t. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
/*@ type=Test* */ /*@target=Test.member*/ t. /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ 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
@@ -40,7 +40,7 @@
var /*@ type=B* */ v2 =
/*@ type=Test* */ /*@target=Test.member*/ t
. /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
/*@ type=Test* */ t
. /*@target=Test.member*/ /*@target=Test.member*/ member
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 a41c144..f810644 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
@@ -22,62 +22,62 @@
B member;
static void test(Test t) {
- /*@ type=Test* */ /*@target=Test.==*/ t?. /*@target=Test.member*/
+ /*@ type=Test* */ t?. /*@target=Test.member*/
member = /*@ typeArgs=B* */ f();
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.**/ *= /*@ typeArgs=B* */ f();
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- /*@target=B.-*/ -- /*@target=Test.==*/ t
+ /*@target=B.-*/ -- t
?. /*@target=Test.member*/ /*@target=Test.member*/ member;
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
var /*@ type=B* */ v1 =
- /*@ type=Test* */ /*@target=Test.==*/ t?. /*@target=Test.member*/
+ /*@ type=Test* */ t?. /*@target=Test.member*/
member = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
var /*@ type=B* */ v4 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.**/ *= /*@ typeArgs=B* */ f();
var /*@ type=C* */ v5 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.&*/ &= /*@ typeArgs=A* */ f();
var /*@ type=B* */ v6 =
- /*@target=B.-*/ -- /*@target=Test.==*/ t
+ /*@target=B.-*/ -- t
?. /*@target=Test.member*/ /*@target=Test.member*/ member;
var /*@ type=B* */ v7 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
}
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 ad284c2..82e2b7c 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
@@ -13,24 +13,24 @@
int prop;
static void test(Test1 t) {
- var /*@ type=int* */ v1 = /*@ type=Test1* */ /*@target=Test1.==*/ t
+ var /*@ type=int* */ v1 = /*@ type=Test1* */ t
?. /*@target=Test1.prop*/ prop = getInt();
var /*@ type=int* */ v4 =
- /*@target=Test1.==*/ t
+ t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=int* */ v7 =
- /*@target=Test1.==*/ t
+ t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++ /*@target=Test1.==*/ t
+ var /*@ type=int* */ v10 = /*@target=num.+*/ ++ t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
var /*@ type=int* */ v11 =
- /*@target=Test1.==*/ t
+ t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ ++;
}
@@ -40,49 +40,49 @@
num prop;
static void test(Test2 t) {
- var /*@ type=int* */ v1 = /*@ type=Test2* */ /*@target=Test2.==*/ t
+ var /*@ type=int* */ v1 = /*@ type=Test2* */ t
?. /*@target=Test2.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = /*@ type=Test2* */ /*@target=Test2.==*/ t
+ var /*@ type=num* */ v2 = /*@ type=Test2* */ t
?. /*@target=Test2.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = /*@ type=Test2* */ /*@target=Test2.==*/ t
+ var /*@ type=double* */ v3 = /*@ type=Test2* */ t
?. /*@target=Test2.prop*/ prop = getDouble();
var /*@ type=num* */ v4 =
- /*@target=Test2.==*/ t
+ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
- /*@target=Test2.==*/ t
+ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
- var /*@ type=num* */ v6 = /*@target=Test2.==*/ t
+ var /*@ type=num* */ v6 = t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 =
- /*@target=Test2.==*/ t
+ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
var /*@ type=num* */ v8 =
- /*@target=Test2.==*/ t
+ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getNum();
var /*@ type=num* */ v9 =
- /*@target=Test2.==*/ t
+ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++ /*@target=Test2.==*/ t
+ var /*@ type=num* */ v10 = /*@target=num.+*/ ++ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
var /*@ type=num* */ v11 =
- /*@target=Test2.==*/ t
+ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ ++;
}
@@ -93,35 +93,35 @@
static void test3(Test3 t) {
var /*@ type=double* */ v3 =
- /*@ type=Test3* */ /*@target=Test3.==*/ t
+ /*@ type=Test3* */ t
?. /*@target=Test3.prop*/ prop = getDouble();
var /*@ type=double* */ v6 =
- /*@target=Test3.==*/ t?.
+ t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 =
- /*@target=Test3.==*/ t
+ t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
var /*@ type=double* */ v8 =
- /*@target=Test3.==*/ t
+ t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getNum();
var /*@ type=double* */ v9 =
- /*@target=Test3.==*/ t?.
+ t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getDouble();
var /*@ type=double* */ v10 = /*@target=double.+*/ ++
- /*@target=Test3.==*/ t
+ t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
var /*@ type=double* */ v11 =
- /*@target=Test3.==*/ t
+ t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ ++;
}
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 e626518..1c94bce 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
@@ -27,7 +27,7 @@
super.member = /*@ typeArgs=B* */ f();
super. /*@target=Base.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
super. /*@target=Base.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -46,7 +46,7 @@
var /*@ type=B* */ v1 = super.member = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 = super. /*@target=Base.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = super. /*@target=Base.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
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 5bb229f..b7a994d 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
@@ -20,7 +20,7 @@
var /*@ type=int* */ v1 = super.intProp = getInt();
var /*@ type=int* */ v4 = super. /*@target=Base.intProp*/ intProp
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=int* */ v7 = super. /*@target=Base.intProp*/ intProp
/*@target=num.+*/ += getInt();
@@ -43,13 +43,13 @@
var /*@ type=double* */ v3 = super.numProp = getDouble();
var /*@ type=num* */ v4 = super. /*@target=Base.numProp*/ numProp
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = super. /*@target=Base.numProp*/ numProp
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = super. /*@target=Base.numProp*/ numProp
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getInt();
@@ -77,7 +77,7 @@
var /*@ type=double* */ v3 = super.doubleProp = getDouble();
var /*@ type=double* */ v6 = super. /*@target=Base.doubleProp*/ doubleProp
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = super. /*@target=Base.doubleProp*/ doubleProp
/*@target=double.+*/ += getInt();
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 26d84f6..541e475 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
@@ -16,7 +16,7 @@
var /*@ type=int* */ v1 = t. /*@target=Test1.prop*/ prop = getInt();
var /*@ type=int* */ v4 = /*@ type=Test1* */ /*@target=Test1.prop*/ t
. /*@target=Test1.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=int* */ v7 =
/*@ type=Test1* */ t. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
@@ -37,13 +37,13 @@
var /*@ type=double* */ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
var /*@ type=num* */ v4 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 =
/*@ type=Test2* */ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
@@ -68,7 +68,7 @@
var /*@ type=double* */ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
var /*@ type=double* */ v6 =
/*@ type=Test3* */ /*@target=Test3.prop*/ t. /*@target=Test3.prop*/
- prop /*@target=num.==*/ ??= getDouble();
+ prop ??= getDouble();
var /*@ type=double* */ v7 =
/*@ type=Test3* */ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
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 1f4c19b..c09b270 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static.dart
@@ -25,7 +25,7 @@
void test_topLevelVariable() {
topLevelVariable = /*@ typeArgs=B* */ f();
- topLevelVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ topLevelVariable ??= /*@ typeArgs=B* */ f();
topLevelVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -40,7 +40,7 @@
var /*@ type=B* */ v1 = topLevelVariable = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- topLevelVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ topLevelVariable ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
topLevelVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -60,7 +60,7 @@
void test_staticVariable() {
B.staticVariable = /*@ typeArgs=B* */ f();
- B.staticVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ B.staticVariable ??= /*@ typeArgs=B* */ f();
B.staticVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -75,7 +75,7 @@
var /*@ type=B* */ v1 = B.staticVariable = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- B.staticVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ B.staticVariable ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
B.staticVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
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 157f454..22ed9e5 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
@@ -16,7 +16,7 @@
void test1() {
var /*@ type=int* */ v1 = topLevelInt = getInt();
- var /*@ type=int* */ v4 = topLevelInt /*@target=num.==*/ ??= getInt();
+ var /*@ type=int* */ v4 = topLevelInt ??= getInt();
var /*@ type=int* */ v7 = topLevelInt /*@target=num.+*/ += getInt();
@@ -33,11 +33,11 @@
var /*@ type=double* */ v3 = topLevelNum = getDouble();
- var /*@ type=num* */ v4 = topLevelNum /*@target=num.==*/ ??= getInt();
+ var /*@ type=num* */ v4 = topLevelNum ??= getInt();
- var /*@ type=num* */ v5 = topLevelNum /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = topLevelNum ??= getNum();
- var /*@ type=num* */ v6 = topLevelNum /*@target=num.==*/ ??= getDouble();
+ var /*@ type=num* */ v6 = topLevelNum ??= getDouble();
var /*@ type=num* */ v7 = topLevelNum /*@target=num.+*/ += getInt();
@@ -55,7 +55,7 @@
var /*@ type=double* */ v3 = topLevelDouble = getDouble();
var /*@ type=double* */ v6 =
- topLevelDouble /*@target=num.==*/ ??= getDouble();
+ topLevelDouble ??= getDouble();
var /*@ type=double* */ v7 = topLevelDouble /*@target=double.+*/ += getInt();
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 c1906ab..2d019d6 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart
@@ -10,9 +10,8 @@
}
g(C c) {
- var /*@ type=int* */ x = /*@ type=C* */ /*@target=C.==*/ c
- ?. /*@target=C.f*/ f();
- /*@ type=C* */ /*@target=C.==*/ c?. /*@target=C.f*/ f();
+ var /*@ type=int* */ x = /*@ type=C* */ c?. /*@target=C.f*/ f();
+ /*@ type=C* */ c?. /*@target=C.f*/ f();
}
main() {}
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 bc20ea3..3d2edef 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart
@@ -10,9 +10,8 @@
}
void f(C c) {
- var /*@ type=int* */ x = /*@ type=C* */ /*@target=C.==*/ c
- ?. /*@target=C.x*/ x;
- /*@ type=C* */ /*@target=C.==*/ c?. /*@target=C.x*/ x;
+ var /*@ type=int* */ x = /*@ type=C* */ c?. /*@target=C.x*/ x;
+ /*@ type=C* */ c?. /*@target=C.x*/ x;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart b/pkg/front_end/testcases/inference/null_coalescing_operator.dart
index f68c07f..8ce2e52 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart
@@ -7,7 +7,6 @@
main() {
List<int> x;
- var /*@ type=List<int*>* */ y =
- x /*@target=List.==*/ ?? /*@ typeArgs=int* */ [];
+ var /*@ type=List<int*>* */ y = x ?? /*@ typeArgs=int* */ [];
List<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 a6dfbb3..f84a4e4 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart
@@ -7,5 +7,5 @@
main() {
List<int> x;
- List<num> y = x /*@target=List.==*/ ?? /*@ typeArgs=num* */ [];
+ List<num> y = x ?? /*@ typeArgs=num* */ [];
}
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 22d5c37..ff8a546 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
@@ -25,7 +25,7 @@
/*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -47,7 +47,7 @@
var /*@ type=B* */ v2 = /*@target=Test.member*/ /*@target=Test.member*/
member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
/*@target=Test.member*/ /*@target=Test.member*/ member
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 c4cdedf..422d372 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
@@ -18,10 +18,10 @@
var /*@ type=num* */ v2 = /*@target=Test1.t*/ t = getNum();
var /*@ type=int* */ v4 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=int* */ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
/*@target=num.+*/ += getInt();
@@ -49,13 +49,13 @@
var /*@ type=double* */ v3 = /*@target=Test2.t*/ t = getDouble();
var /*@ type=num* */ v4 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
/*@target=num.+*/ += getInt();
@@ -84,10 +84,10 @@
var /*@ type=double* */ v3 = /*@target=Test3.t*/ t = getDouble();
var /*@ type=num* */ v5 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
/*@target=double.+*/ += getInt();
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 cd0681b..39a70e4 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
@@ -32,7 +32,7 @@
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -57,7 +57,7 @@
var /*@ type=B* */ v2 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
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 5cd412f..e4108f8 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
@@ -38,7 +38,7 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=A* */ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=A* */ f();
+ ??= /*@ typeArgs=A* */ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
/*@target=B.+*/ += /*@ typeArgs=E* */ f();
@@ -54,7 +54,7 @@
var /*@ type=A* */ v2 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=A* */ f();
+ ??= /*@ typeArgs=A* */ f();
var /*@ type=D* */ v3 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
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 8817a4a..89b4f0a 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
@@ -32,7 +32,7 @@
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
/*@ typeArgs=Index* */ f()]
@@ -57,7 +57,7 @@
var /*@ type=B* */ v2 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
/*@ typeArgs=Index* */ f()]
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 2caca66..afa9f53 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
@@ -25,11 +25,11 @@
var /*@ type=int* */ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=int* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -57,15 +57,15 @@
var /*@ type=int* */ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=int* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -95,11 +95,11 @@
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=int* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -129,11 +129,11 @@
var /*@ type=num* */ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -161,15 +161,15 @@
var /*@ type=num* */ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -199,11 +199,11 @@
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -233,11 +233,11 @@
var /*@ type=num* */ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -265,15 +265,15 @@
var /*@ type=num* */ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
@@ -303,11 +303,11 @@
var /*@ type=num* */ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
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 8684930..e0b9ec5 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
@@ -30,7 +30,7 @@
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
@@ -55,7 +55,7 @@
var /*@ type=B* */ v2 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
/*@ typeArgs=Index* */ f()]
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 f9e34c4..f6d9aab 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
@@ -20,11 +20,11 @@
var /*@ type=int* */ v4 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=int* */ v7 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
@@ -56,15 +56,15 @@
var /*@ type=int* */ v4 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=int* */ v7 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
@@ -98,11 +98,11 @@
var /*@ type=num* */ v5 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=int* */ v7 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
@@ -136,11 +136,11 @@
var /*@ type=num* */ v4 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v7 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
@@ -172,15 +172,15 @@
var /*@ type=num* */ v4 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
@@ -214,11 +214,11 @@
var /*@ type=num* */ v5 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
@@ -253,11 +253,11 @@
var /*@ type=num* */ v4 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v7 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
@@ -291,15 +291,15 @@
var /*@ type=num* */ v4 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
@@ -334,11 +334,11 @@
var /*@ type=num* */ v5 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
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 caebb26..7980f3f 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
@@ -20,10 +20,10 @@
var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
var /*@ type=int* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=int* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
@@ -48,13 +48,13 @@
var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
var /*@ type=int* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=int* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
@@ -81,10 +81,10 @@
var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=int* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
@@ -111,10 +111,10 @@
var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
@@ -139,13 +139,13 @@
var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
@@ -172,10 +172,10 @@
var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
@@ -202,10 +202,10 @@
var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
@@ -231,13 +231,13 @@
var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
@@ -265,10 +265,10 @@
var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
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 17b741e..d6b952a 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
@@ -22,7 +22,7 @@
B local;
local = /*@ typeArgs=B* */ f();
- local /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ local ??= /*@ typeArgs=B* */ f();
local /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -37,7 +37,7 @@
var /*@ type=B* */ v1 = local = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- local /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ local ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = local
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
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 52101cc..6a3242d 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
@@ -14,9 +14,9 @@
var /*@ type=num* */ v2 = t = getNum();
- var /*@ type=int* */ v4 = t /*@target=num.==*/ ??= getInt();
+ var /*@ type=int* */ v4 = t ??= getInt();
- var /*@ type=num* */ v5 = t /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = t ??= getNum();
var /*@ type=int* */ v7 = t /*@target=num.+*/ += getInt();
@@ -35,11 +35,11 @@
var /*@ type=double* */ v3 = t = getDouble();
- var /*@ type=num* */ v4 = t /*@target=num.==*/ ??= getInt();
+ var /*@ type=num* */ v4 = t ??= getInt();
- var /*@ type=num* */ v5 = t /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = t ??= getNum();
- var /*@ type=num* */ v6 = t /*@target=num.==*/ ??= getDouble();
+ var /*@ type=num* */ v6 = t ??= getDouble();
var /*@ type=num* */ v7 = t /*@target=num.+*/ += getInt();
@@ -58,9 +58,9 @@
var /*@ type=double* */ v3 = t = getDouble();
- var /*@ type=num* */ v5 = t /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = t ??= getNum();
- var /*@ type=double* */ v6 = t /*@target=num.==*/ ??= getDouble();
+ var /*@ type=double* */ v6 = t ??= getDouble();
var /*@ type=double* */ v7 = t /*@target=double.+*/ += getInt();
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 c112d9c..24d478e 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
@@ -24,7 +24,7 @@
static void test(Test t) {
t. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
/*@ type=Test* */ /*@target=Test.member*/ t. /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ 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
@@ -40,7 +40,7 @@
var /*@ type=B* */ v2 =
/*@ type=Test* */ /*@target=Test.member*/ t
. /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
/*@ type=Test* */ t
. /*@target=Test.member*/ /*@target=Test.member*/ member
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 5719c09..0905ef9 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
@@ -22,60 +22,60 @@
B member;
static void test(Test t) {
- /*@ type=Test* */ /*@target=Test.==*/ t
+ /*@ type=Test* */ t
?. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
- /*@target=Test.==*/ t?.
+ t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
- /*@target=Test.==*/ t?.
+ t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
- /*@target=Test.==*/ t?.
+ t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.**/ *= /*@ typeArgs=B* */ f();
- /*@target=Test.==*/ t?.
+ t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- /*@target=B.-*/ -- /*@target=Test.==*/ t?.
+ /*@target=B.-*/ -- t?.
/*@target=Test.member*/ /*@target=Test.member*/ member;
- /*@target=Test.==*/ t?.
+ t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
var /*@ type=B* */ v1 =
- /*@ type=Test* */ /*@target=Test.==*/ t
+ /*@ type=Test* */ t
?. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
var /*@ type=B* */ v4 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.**/ *= /*@ typeArgs=B* */ f();
var /*@ type=C* */ v5 =
- /*@target=Test.==*/ t
+ t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ -- /*@target=Test.==*/ t
+ var /*@ type=B* */ v6 = /*@target=B.-*/ -- t
?. /*@target=Test.member*/ /*@target=Test.member*/ member;
- var /*@ type=B* */ v7 = /*@target=Test.==*/ 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_aware_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart
index b72b887..692f54f 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
@@ -13,33 +13,33 @@
int prop;
static void test(Test1 t) {
- var /*@ type=int* */ v1 = /*@ type=Test1* */ /*@target=Test1.==*/ t
+ var /*@ type=int* */ v1 = /*@ type=Test1* */ t
?. /*@target=Test1.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = /*@ type=Test1* */ /*@target=Test1.==*/ t
+ var /*@ type=num* */ v2 = /*@ type=Test1* */ t
?. /*@target=Test1.prop*/ prop = getNum();
- var /*@ type=int* */ v4 = /*@target=Test1.==*/ t?.
+ var /*@ type=int* */ v4 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
- var /*@ type=num* */ v5 = /*@target=Test1.==*/ t?.
+ var /*@ type=num* */ v5 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
- var /*@ type=int* */ v7 = /*@target=Test1.==*/ t?.
+ var /*@ type=int* */ v7 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = /*@target=Test1.==*/ t?.
+ var /*@ type=num* */ v8 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getNum();
var /*@ type=int* */ v10 = /*@target=num.+*/ ++
- /*@target=Test1.==*/ t?.
+ t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
- var /*@ type=int* */ v11 = /*@target=Test1.==*/ t?.
+ var /*@ type=int* */ v11 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ ++;
}
@@ -49,43 +49,43 @@
num prop;
static void test(Test2 t) {
- var /*@ type=int* */ v1 = /*@ type=Test2* */ /*@target=Test2.==*/ t
+ var /*@ type=int* */ v1 = /*@ type=Test2* */ t
?. /*@target=Test2.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = /*@ type=Test2* */ /*@target=Test2.==*/ t
+ var /*@ type=num* */ v2 = /*@ type=Test2* */ t
?. /*@target=Test2.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = /*@ type=Test2* */ /*@target=Test2.==*/ t
+ var /*@ type=double* */ v3 = /*@ type=Test2* */ t
?. /*@target=Test2.prop*/ prop = getDouble();
- var /*@ type=num* */ v4 = /*@target=Test2.==*/ t?.
+ var /*@ type=num* */ v4 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
- var /*@ type=num* */ v5 = /*@target=Test2.==*/ t?.
+ var /*@ type=num* */ v5 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
- var /*@ type=num* */ v6 = /*@target=Test2.==*/ t?.
+ var /*@ type=num* */ v6 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
- var /*@ type=num* */ v7 = /*@target=Test2.==*/ t?.
+ var /*@ type=num* */ v7 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = /*@target=Test2.==*/ t?.
+ var /*@ type=num* */ v8 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = /*@target=Test2.==*/ t?.
+ var /*@ type=num* */ v9 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/
prop /*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++ /*@target=Test2.==*/
+ var /*@ type=num* */ v10 = /*@target=num.+*/ ++
t?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
- var /*@ type=num* */ v11 = /*@target=Test2.==*/
+ var /*@ type=num* */ v11 =
t?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ ++;
}
@@ -95,39 +95,39 @@
double prop;
static void test3(Test3 t) {
- var /*@ type=num* */ v2 = /*@ type=Test3* */ /*@target=Test3.==*/ t
+ var /*@ type=num* */ v2 = /*@ type=Test3* */ t
?. /*@target=Test3.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = /*@ type=Test3* */ /*@target=Test3.==*/ t
+ var /*@ type=double* */ v3 = /*@ type=Test3* */ t
?. /*@target=Test3.prop*/ prop = getDouble();
- var /*@ type=num* */ v5 = /*@target=Test3.==*/ t?.
+ var /*@ type=num* */ v5 = t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 =
- /*@target=Test3.==*/ t?.
+ t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
- var /*@ type=double* */ v7 = /*@target=Test3.==*/ t?.
+ var /*@ type=double* */ v7 = t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = /*@target=Test3.==*/ t?.
+ var /*@ type=double* */ v8 = t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getNum();
var /*@ type=double* */ v9 =
- /*@target=Test3.==*/ t?.
+ t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getDouble();
var /*@ type=double* */ v10 = /*@target=double.+*/ ++
- /*@target=Test3.==*/ t?.
+ t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
- var /*@ type=double* */ v11 = /*@target=Test3.==*/
+ 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_super.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super.dart
index 48ef55d..00881df 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
@@ -27,7 +27,7 @@
super.member = /*@ typeArgs=B* */ f();
super. /*@target=Base.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
super. /*@target=Base.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -46,7 +46,7 @@
var /*@ type=B* */ v1 = super.member = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 = super. /*@target=Base.member*/ member
- /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = super. /*@target=Base.member*/ member
/*@target=B.+*/ += /*@ typeArgs=C* */ f();
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 c04c80e..fb14b71 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
@@ -22,10 +22,10 @@
var /*@ type=num* */ v2 = super.intProp = getNum();
var /*@ type=int* */ v4 = super. /*@target=Base.intProp*/ intProp
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = super. /*@target=Base.intProp*/ intProp
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=int* */ v7 = super. /*@target=Base.intProp*/ intProp
/*@target=num.+*/ += getInt();
@@ -51,13 +51,13 @@
var /*@ type=double* */ v3 = super.numProp = getDouble();
var /*@ type=num* */ v4 = super. /*@target=Base.numProp*/ numProp
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = super. /*@target=Base.numProp*/ numProp
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = super. /*@target=Base.numProp*/ numProp
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getInt();
@@ -84,10 +84,10 @@
var /*@ type=double* */ v3 = super.doubleProp = getDouble();
var /*@ type=num* */ v5 = super. /*@target=Base.doubleProp*/ doubleProp
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = super. /*@target=Base.doubleProp*/ doubleProp
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = super
. /*@target=Base.doubleProp*/
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 e7d6d4b..e3c79e3 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
@@ -17,10 +17,10 @@
var /*@ type=num* */ v2 = t. /*@target=Test1.prop*/ prop = getNum();
var /*@ type=int* */ v4 = /*@ type=Test1* */ /*@target=Test1.prop*/ t
. /*@target=Test1.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = /*@ type=Test1* */ /*@target=Test1.prop*/ t
. /*@target=Test1.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=int* */ v7 = /*@ type=Test1* */ t
. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
@@ -45,13 +45,13 @@
var /*@ type=double* */ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
var /*@ type=num* */ v4 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getInt();
+ ??= getInt();
var /*@ type=num* */ v5 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=num* */ v6 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=num* */ v7 = /*@ type=Test2* */ t
. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
@@ -78,10 +78,10 @@
var /*@ type=double* */ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
var /*@ type=num* */ v5 = /*@ type=Test3* */ /*@target=Test3.prop*/ t
. /*@target=Test3.prop*/ prop
- /*@target=num.==*/ ??= getNum();
+ ??= getNum();
var /*@ type=double* */ v6 = /*@ type=Test3* */ /*@target=Test3.prop*/ t
. /*@target=Test3.prop*/ prop
- /*@target=num.==*/ ??= getDouble();
+ ??= getDouble();
var /*@ type=double* */ v7 = /*@ type=Test3* */ t
. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
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 1f4c19b..c09b270 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
@@ -25,7 +25,7 @@
void test_topLevelVariable() {
topLevelVariable = /*@ typeArgs=B* */ f();
- topLevelVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ topLevelVariable ??= /*@ typeArgs=B* */ f();
topLevelVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -40,7 +40,7 @@
var /*@ type=B* */ v1 = topLevelVariable = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- topLevelVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ topLevelVariable ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
topLevelVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -60,7 +60,7 @@
void test_staticVariable() {
B.staticVariable = /*@ typeArgs=B* */ f();
- B.staticVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ B.staticVariable ??= /*@ typeArgs=B* */ f();
B.staticVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
@@ -75,7 +75,7 @@
var /*@ type=B* */ v1 = B.staticVariable = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 =
- B.staticVariable /*@target=A.==*/ ??= /*@ typeArgs=B* */ f();
+ B.staticVariable ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 =
B.staticVariable /*@target=B.+*/ += /*@ typeArgs=C* */ f();
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 4b22632..237f648 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
@@ -18,9 +18,9 @@
var /*@ type=num* */ v2 = topLevelInt = getNum();
- var /*@ type=int* */ v4 = topLevelInt /*@target=num.==*/ ??= getInt();
+ var /*@ type=int* */ v4 = topLevelInt ??= getInt();
- var /*@ type=num* */ v5 = topLevelInt /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = topLevelInt ??= getNum();
var /*@ type=int* */ v7 = topLevelInt /*@target=num.+*/ += getInt();
@@ -39,11 +39,11 @@
var /*@ type=double* */ v3 = topLevelNum = getDouble();
- var /*@ type=num* */ v4 = topLevelNum /*@target=num.==*/ ??= getInt();
+ var /*@ type=num* */ v4 = topLevelNum ??= getInt();
- var /*@ type=num* */ v5 = topLevelNum /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = topLevelNum ??= getNum();
- var /*@ type=num* */ v6 = topLevelNum /*@target=num.==*/ ??= getDouble();
+ var /*@ type=num* */ v6 = topLevelNum ??= getDouble();
var /*@ type=num* */ v7 = topLevelNum /*@target=num.+*/ += getInt();
@@ -62,10 +62,10 @@
var /*@ type=double* */ v3 = topLevelDouble = getDouble();
- var /*@ type=num* */ v5 = topLevelDouble /*@target=num.==*/ ??= getNum();
+ var /*@ type=num* */ v5 = topLevelDouble ??= getNum();
var /*@ type=double* */ v6 =
- topLevelDouble /*@target=num.==*/ ??= getDouble();
+ topLevelDouble ??= getDouble();
var /*@ type=double* */ v7 = topLevelDouble /*@target=double.+*/ += getInt();
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 7478374..22e5ba7 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
@@ -21,6 +21,6 @@
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
- /*@target=C.==*/ ??= new D();
+ ??= new D();
main() {}
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 7934529..ea950c6 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
@@ -40,12 +40,12 @@
synthetic constructor •() → self::C*
: super core::Object::•()
;
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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 8899b99..da2cfcc 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
@@ -38,12 +38,12 @@
class C extends core::Object {
synthetic constructor •() → self::C*
;
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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 7934529..ea950c6 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
@@ -40,12 +40,12 @@
synthetic constructor •() → self::C*
: super core::Object::•()
;
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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 c7d7e2b..89d50fb 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
@@ -20,6 +20,6 @@
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 /*@target=C.==*/ ??= new D();
+ . /*@target=B.c*/ c ??= new D();
main() {}
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 07d3dfd..b174194 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
@@ -38,12 +38,12 @@
synthetic constructor •() → self::C*
: super core::Object::•()
;
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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 1ad86f8..06be72a 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
@@ -35,12 +35,12 @@
class C extends core::Object {
synthetic constructor •() → self::C*
;
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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 07d3dfd..b174194 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
@@ -38,12 +38,12 @@
synthetic constructor •() → self::C*
: super core::Object::•()
;
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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 9722b96..1aeaa68 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
@@ -11,6 +11,5 @@
main() {
Class c;
- num Function() f = /*@target=Class.==*/ /*@type=Class**/ c
- ?. /*@target=Class.method*/ method;
+ num Function() f = /*@type=Class**/ c?. /*@target=Class.method*/ method;
}