[cfe] Adjust typing in more kinds of if-null expressions

This is a follow-up to
https://dart-review.googlesource.com/c/sdk/+/360865

Closes https://github.com/dart-lang/sdk/issues/55372

Change-Id: Ib2f17d2ee60ac8604ff0314472cd09fc1fb5308f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362101
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
This commit is contained in:
Chloe Stefantsova
2024-04-15 06:39:50 +00:00
committed by Commit Queue
parent 47123f7e2d
commit a3f294cc64
93 changed files with 769 additions and 253 deletions
@@ -5238,8 +5238,11 @@ class InferenceVisitorImpl extends InferenceVisitorBase
//
Expression equalsNull =
createEqualsNull(read, fileOffset: node.fileOffset);
ConditionalExpression conditional = new ConditionalExpression(equalsNull,
write, new NullLiteral()..fileOffset = node.fileOffset, inferredType)
ConditionalExpression conditional = new ConditionalExpression(
equalsNull,
write,
new NullLiteral()..fileOffset = node.fileOffset,
computeNullable(inferredType))
..fileOffset = node.fileOffset;
replacement =
new Let(receiverVariable, conditional..fileOffset = node.fileOffset)
@@ -5741,9 +5744,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
equalsNull,
write,
new NullLiteral()..fileOffset = node.testOffset,
isNonNullableByDefault
? inferredType.withDeclaredNullability(Nullability.nullable)
: inferredType)
computeNullable(inferredType))
..fileOffset = node.testOffset;
inner = conditional;
} else {
@@ -5903,8 +5904,11 @@ class InferenceVisitorImpl extends InferenceVisitorBase
assert(valueVariable == null);
Expression equalsNull =
createEqualsNull(read, fileOffset: node.testOffset);
replacement = new ConditionalExpression(equalsNull, write,
new NullLiteral()..fileOffset = node.testOffset, inferredType)
replacement = new ConditionalExpression(
equalsNull,
write,
new NullLiteral()..fileOffset = node.testOffset,
computeNullable(inferredType))
..fileOffset = node.testOffset;
} else {
// Encode `o[a] ??= b` as:
@@ -6063,8 +6067,11 @@ class InferenceVisitorImpl extends InferenceVisitorBase
assert(valueVariable == null);
Expression equalsNull =
createEqualsNull(read, fileOffset: node.testOffset);
replacement = new ConditionalExpression(equalsNull, write,
new NullLiteral()..fileOffset = node.testOffset, inferredType)
replacement = new ConditionalExpression(
equalsNull,
write,
new NullLiteral()..fileOffset = node.testOffset,
computeNullable(inferredType))
..fileOffset = node.testOffset;
} else {
// Encode `Extension(o)[a] ??= b` as:
@@ -7735,8 +7742,11 @@ class InferenceVisitorImpl extends InferenceVisitorBase
Expression readEqualsNull =
createEqualsNull(read, fileOffset: node.readOffset);
replacement = new ConditionalExpression(readEqualsNull, write,
new NullLiteral()..fileOffset = node.writeOffset, inferredType)
replacement = new ConditionalExpression(
readEqualsNull,
write,
new NullLiteral()..fileOffset = node.writeOffset,
computeNullable(inferredType))
..fileOffset = node.writeOffset;
} else {
// Encode `receiver?.name ??= value` as:
@@ -192,13 +192,13 @@ static method test(self::Class c, self::Class? cn) → dynamic {
self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t101 = c in let final core::int #t102 = 8.{core::int::unary-}(){() → core::int} in let final void #t103 = self::Extension|set#setterWithClosure(#t101, #t102) in #t102);
self::expect(8, let final self::Class? #t104 = cn in #t104 == null ?{core::int?} null : #t104{self::Class}.{self::Class::field}{core::int});
c.{self::Class::nullableField} = null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
self::expect(1, c.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class #t106 = c in let final core::int? #t107 = self::Extension|get#simpleNullableSetter(#t106) in #t107 == null ?{core::int} let final core::int #t108 = 2 in let final void #t109 = self::Extension|set#simpleNullableSetter(#t106, #t108) in #t108 : #t107{core::int});
c.{self::Class::nullableField} = null;
self::expect(2, let final self::Class #t110 = c in let final core::int? #t111 = self::Extension|get#simpleNullableSetter(#t110) in #t111 == null ?{core::int} let final core::int #t112 = 2 in let final void #t113 = self::Extension|set#simpleNullableSetter(#t110, #t112) in #t112 : #t111{core::int});
let final self::Class? #t114 = cn in #t114 == null ?{Null} null : #t114{self::Class}.{self::Class::nullableField} = null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
self::expect(1, let final self::Class? #t116 = cn in #t116 == null ?{core::int?} null : #t116{self::Class}.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class? #t117 = cn in #t117 == null ?{core::int?} null : let final core::int? #t118 = self::Extension|get#simpleNullableSetter(#t117) in #t118 == null ?{core::int} let final core::int #t119 = 2 in let final void #t120 = self::Extension|set#simpleNullableSetter(#t117, #t119) in #t119 : #t118{core::int});
let final self::Class? #t121 = cn in #t121 == null ?{Null} null : #t121{self::Class}.{self::Class::nullableField} = null;
@@ -192,13 +192,13 @@ static method test(self::Class c, self::Class? cn) → dynamic {
self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t101 = c in let final core::int #t102 = 8.{core::int::unary-}(){() → core::int} in let final void #t103 = self::Extension|set#setterWithClosure(#t101, #t102) in #t102);
self::expect(8, let final self::Class? #t104 = cn in #t104 == null ?{core::int?} null : #t104{self::Class}.{self::Class::field}{core::int});
c.{self::Class::nullableField} = null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
self::expect(1, c.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class #t106 = c in let final core::int? #t107 = self::Extension|get#simpleNullableSetter(#t106) in #t107 == null ?{core::int} let final core::int #t108 = 2 in let final void #t109 = self::Extension|set#simpleNullableSetter(#t106, #t108) in #t108 : #t107{core::int});
c.{self::Class::nullableField} = null;
self::expect(2, let final self::Class #t110 = c in let final core::int? #t111 = self::Extension|get#simpleNullableSetter(#t110) in #t111 == null ?{core::int} let final core::int #t112 = 2 in let final void #t113 = self::Extension|set#simpleNullableSetter(#t110, #t112) in #t112 : #t111{core::int});
let final self::Class? #t114 = cn in #t114 == null ?{Null} null : #t114{self::Class}.{self::Class::nullableField} = null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
self::expect(1, let final self::Class? #t116 = cn in #t116 == null ?{core::int?} null : #t116{self::Class}.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class? #t117 = cn in #t117 == null ?{core::int?} null : let final core::int? #t118 = self::Extension|get#simpleNullableSetter(#t117) in #t118 == null ?{core::int} let final core::int #t119 = 2 in let final void #t120 = self::Extension|set#simpleNullableSetter(#t117, #t119) in #t119 : #t118{core::int});
let final self::Class? #t121 = cn in #t121 == null ?{Null} null : #t121{self::Class}.{self::Class::nullableField} = null;
@@ -192,13 +192,13 @@ static method test(self::Class c, self::Class? cn) → dynamic {
self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t101 = c in let final core::int #t102 = 8.{core::int::unary-}(){() → core::int} in let final void #t103 = self::Extension|set#setterWithClosure(#t101, #t102) in #t102);
self::expect(8, let final self::Class? #t104 = cn in #t104 == null ?{core::int?} null : #t104{self::Class}.{self::Class::field}{core::int});
c.{self::Class::nullableField} = null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
self::expect(1, c.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class #t106 = c in let final core::int? #t107 = self::Extension|get#simpleNullableSetter(#t106) in #t107 == null ?{core::int} let final core::int #t108 = 2 in let final void #t109 = self::Extension|set#simpleNullableSetter(#t106, #t108) in #t108 : #t107{core::int});
c.{self::Class::nullableField} = null;
self::expect(2, let final self::Class #t110 = c in let final core::int? #t111 = self::Extension|get#simpleNullableSetter(#t110) in #t111 == null ?{core::int} let final core::int #t112 = 2 in let final void #t113 = self::Extension|set#simpleNullableSetter(#t110, #t112) in #t112 : #t111{core::int});
let final self::Class? #t114 = cn in #t114 == null ?{Null} null : #t114{self::Class}.{self::Class::nullableField} = null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
self::expect(1, let final self::Class? #t116 = cn in #t116 == null ?{core::int?} null : #t116{self::Class}.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class? #t117 = cn in #t117 == null ?{core::int?} null : let final core::int? #t118 = self::Extension|get#simpleNullableSetter(#t117) in #t118 == null ?{core::int} let final core::int #t119 = 2 in let final void #t120 = self::Extension|set#simpleNullableSetter(#t117, #t119) in #t119 : #t118{core::int});
let final self::Class? #t121 = cn in #t121 == null ?{Null} null : #t121{self::Class}.{self::Class::nullableField} = null;
@@ -192,13 +192,13 @@ static method test(self::Class c, self::Class? cn) → dynamic {
self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t101 = c in let final core::int #t102 = 8.{core::int::unary-}(){() → core::int} in let final void #t103 = self::Extension|set#setterWithClosure(#t101, #t102) in #t102);
self::expect(8, let final self::Class? #t104 = cn in #t104 == null ?{core::int?} null : #t104{self::Class}.{self::Class::field}{core::int});
c.{self::Class::nullableField} = null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
self::expect(1, c.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class #t106 = c in let final core::int? #t107 = self::Extension|get#simpleNullableSetter(#t106) in #t107 == null ?{core::int} let final core::int #t108 = 2 in let final void #t109 = self::Extension|set#simpleNullableSetter(#t106, #t108) in #t108 : #t107{core::int});
c.{self::Class::nullableField} = null;
self::expect(2, let final self::Class #t110 = c in let final core::int? #t111 = self::Extension|get#simpleNullableSetter(#t110) in #t111 == null ?{core::int} let final core::int #t112 = 2 in let final void #t113 = self::Extension|set#simpleNullableSetter(#t110, #t112) in #t112 : #t111{core::int});
let final self::Class? #t114 = cn in #t114 == null ?{Null} null : #t114{self::Class}.{self::Class::nullableField} = null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
self::expect(1, let final self::Class? #t116 = cn in #t116 == null ?{core::int?} null : #t116{self::Class}.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class? #t117 = cn in #t117 == null ?{core::int?} null : let final core::int? #t118 = self::Extension|get#simpleNullableSetter(#t117) in #t118 == null ?{core::int} let final core::int #t119 = 2 in let final void #t120 = self::Extension|set#simpleNullableSetter(#t117, #t119) in #t119 : #t118{core::int});
let final self::Class? #t121 = cn in #t121 == null ?{Null} null : #t121{self::Class}.{self::Class::nullableField} = null;
@@ -192,13 +192,13 @@ static method test(self::Class c, self::Class? cn) → dynamic {
self::expect(8.{core::int::unary-}(){() → core::int}, let final self::Class #t101 = c in let final core::int #t102 = 8.{core::int::unary-}(){() → core::int} in let final void #t103 = self::Extension|set#setterWithClosure(#t101, #t102) in #t102);
self::expect(8, let final self::Class? #t104 = cn in #t104 == null ?{core::int?} null : #t104{self::Class}.{self::Class::field}{core::int});
c.{self::Class::nullableField} = null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
let final self::Class #t105 = c in self::Extension|get#simpleNullableSetter(#t105) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t105, 1) : null;
self::expect(1, c.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class #t106 = c in let final core::int? #t107 = self::Extension|get#simpleNullableSetter(#t106) in #t107 == null ?{core::int} let final core::int #t108 = 2 in let final void #t109 = self::Extension|set#simpleNullableSetter(#t106, #t108) in #t108 : #t107{core::int});
c.{self::Class::nullableField} = null;
self::expect(2, let final self::Class #t110 = c in let final core::int? #t111 = self::Extension|get#simpleNullableSetter(#t110) in #t111 == null ?{core::int} let final core::int #t112 = 2 in let final void #t113 = self::Extension|set#simpleNullableSetter(#t110, #t112) in #t112 : #t111{core::int});
let final self::Class? #t114 = cn in #t114 == null ?{Null} null : #t114{self::Class}.{self::Class::nullableField} = null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
let final self::Class? #t115 = cn in #t115 == null ?{core::int?} null : self::Extension|get#simpleNullableSetter(#t115) == null ?{core::int?} self::Extension|set#simpleNullableSetter(#t115, 1) : null;
self::expect(1, let final self::Class? #t116 = cn in #t116 == null ?{core::int?} null : #t116{self::Class}.{self::Class::nullableField}{core::int?});
self::expect(1, let final self::Class? #t117 = cn in #t117 == null ?{core::int?} null : let final core::int? #t118 = self::Extension|get#simpleNullableSetter(#t117) in #t118 == null ?{core::int} let final core::int #t119 = 2 in let final void #t120 = self::Extension|set#simpleNullableSetter(#t117, #t119) in #t119 : #t118{core::int});
let final self::Class? #t121 = cn in #t121 == null ?{Null} null : #t121{self::Class}.{self::Class::nullableField} = null;
@@ -81,11 +81,11 @@ static method explicitWithTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t48 = map1 in let final core::String #t49 = "2" in let final void #t50 = self::Extension|[]=<core::int, core::String>(#t48, 1, #t49) in #t49);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t53 = map1 in let final core::int #t54 = 1 in let final core::String? #t55 = self::Extension|[]<core::int, core::String>(#t53, #t54) in #t55 == null ?{core::String} let final core::String #t56 = "4" in let final void #t57 = self::Extension|[]=<core::int, core::String>(#t53, #t54, #t56) in #t56 : #t55{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t60 = map1 in let final core::int #t61 = 3 in let final core::String? #t62 = self::Extension|[]<core::int, core::String>(#t60, #t61) in #t62 == null ?{core::String} let final core::String #t63 = "3" in let final void #t64 = self::Extension|[]=<core::int, core::String>(#t60, #t61, #t63) in #t63 : #t62{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -108,11 +108,11 @@ static method explicitInferredTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t84 = map1 in let final core::String #t85 = "2" in let final void #t86 = self::Extension|[]=<core::int, core::String>(#t84, 1, #t85) in #t85);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t89 = map1 in let final core::int #t90 = 1 in let final core::String? #t91 = self::Extension|[]<core::int, core::String>(#t89, #t90) in #t91 == null ?{core::String} let final core::String #t92 = "4" in let final void #t93 = self::Extension|[]=<core::int, core::String>(#t89, #t90, #t92) in #t92 : #t91{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t96 = map1 in let final core::int #t97 = 3 in let final core::String? #t98 = self::Extension|[]<core::int, core::String>(#t96, #t97) in #t98 == null ?{core::String} let final core::String #t99 = "3" in let final void #t100 = self::Extension|[]=<core::int, core::String>(#t96, #t97, #t99) in #t99 : #t98{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -81,11 +81,11 @@ static method explicitWithTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t48 = map1 in let final core::String #t49 = "2" in let final void #t50 = self::Extension|[]=<core::int, core::String>(#t48, 1, #t49) in #t49);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t53 = map1 in let final core::int #t54 = 1 in let final core::String? #t55 = self::Extension|[]<core::int, core::String>(#t53, #t54) in #t55 == null ?{core::String} let final core::String #t56 = "4" in let final void #t57 = self::Extension|[]=<core::int, core::String>(#t53, #t54, #t56) in #t56 : #t55{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t60 = map1 in let final core::int #t61 = 3 in let final core::String? #t62 = self::Extension|[]<core::int, core::String>(#t60, #t61) in #t62 == null ?{core::String} let final core::String #t63 = "3" in let final void #t64 = self::Extension|[]=<core::int, core::String>(#t60, #t61, #t63) in #t63 : #t62{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -108,11 +108,11 @@ static method explicitInferredTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t84 = map1 in let final core::String #t85 = "2" in let final void #t86 = self::Extension|[]=<core::int, core::String>(#t84, 1, #t85) in #t85);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t89 = map1 in let final core::int #t90 = 1 in let final core::String? #t91 = self::Extension|[]<core::int, core::String>(#t89, #t90) in #t91 == null ?{core::String} let final core::String #t92 = "4" in let final void #t93 = self::Extension|[]=<core::int, core::String>(#t89, #t90, #t92) in #t92 : #t91{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t96 = map1 in let final core::int #t97 = 3 in let final core::String? #t98 = self::Extension|[]<core::int, core::String>(#t96, #t97) in #t98 == null ?{core::String} let final core::String #t99 = "3" in let final void #t100 = self::Extension|[]=<core::int, core::String>(#t96, #t97, #t99) in #t99 : #t98{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -81,11 +81,11 @@ static method explicitWithTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t48 = map1 in let final core::String #t49 = "2" in let final void #t50 = self::Extension|[]=<core::int, core::String>(#t48, 1, #t49) in #t49);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t53 = map1 in let final core::int #t54 = 1 in let final core::String? #t55 = self::Extension|[]<core::int, core::String>(#t53, #t54) in #t55 == null ?{core::String} let final core::String #t56 = "4" in let final void #t57 = self::Extension|[]=<core::int, core::String>(#t53, #t54, #t56) in #t56 : #t55{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t60 = map1 in let final core::int #t61 = 3 in let final core::String? #t62 = self::Extension|[]<core::int, core::String>(#t60, #t61) in #t62 == null ?{core::String} let final core::String #t63 = "3" in let final void #t64 = self::Extension|[]=<core::int, core::String>(#t60, #t61, #t63) in #t63 : #t62{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -108,11 +108,11 @@ static method explicitInferredTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t84 = map1 in let final core::String #t85 = "2" in let final void #t86 = self::Extension|[]=<core::int, core::String>(#t84, 1, #t85) in #t85);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t89 = map1 in let final core::int #t90 = 1 in let final core::String? #t91 = self::Extension|[]<core::int, core::String>(#t89, #t90) in #t91 == null ?{core::String} let final core::String #t92 = "4" in let final void #t93 = self::Extension|[]=<core::int, core::String>(#t89, #t90, #t92) in #t92 : #t91{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t96 = map1 in let final core::int #t97 = 3 in let final core::String? #t98 = self::Extension|[]<core::int, core::String>(#t96, #t97) in #t98 == null ?{core::String} let final core::String #t99 = "3" in let final void #t100 = self::Extension|[]=<core::int, core::String>(#t96, #t97, #t99) in #t99 : #t98{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -81,11 +81,11 @@ static method explicitWithTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t48 = map1 in let final core::String #t49 = "2" in let final void #t50 = self::Extension|[]=<core::int, core::String>(#t48, 1, #t49) in #t49);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t53 = map1 in let final core::int #t54 = 1 in let final core::String? #t55 = self::Extension|[]<core::int, core::String>(#t53, #t54) in #t55 == null ?{core::String} let final core::String #t56 = "4" in let final void #t57 = self::Extension|[]=<core::int, core::String>(#t53, #t54, #t56) in #t56 : #t55{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t60 = map1 in let final core::int #t61 = 3 in let final core::String? #t62 = self::Extension|[]<core::int, core::String>(#t60, #t61) in #t62 == null ?{core::String} let final core::String #t63 = "3" in let final void #t64 = self::Extension|[]=<core::int, core::String>(#t60, #t61, #t63) in #t63 : #t62{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -108,11 +108,11 @@ static method explicitInferredTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t84 = map1 in let final core::String #t85 = "2" in let final void #t86 = self::Extension|[]=<core::int, core::String>(#t84, 1, #t85) in #t85);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t89 = map1 in let final core::int #t90 = 1 in let final core::String? #t91 = self::Extension|[]<core::int, core::String>(#t89, #t90) in #t91 == null ?{core::String} let final core::String #t92 = "4" in let final void #t93 = self::Extension|[]=<core::int, core::String>(#t89, #t90, #t92) in #t92 : #t91{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t96 = map1 in let final core::int #t97 = 3 in let final core::String? #t98 = self::Extension|[]<core::int, core::String>(#t96, #t97) in #t98 == null ?{core::String} let final core::String #t99 = "3" in let final void #t100 = self::Extension|[]=<core::int, core::String>(#t96, #t97, #t99) in #t99 : #t98{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -81,11 +81,11 @@ static method explicitWithTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t48 = map1 in let final core::String #t49 = "2" in let final void #t50 = self::Extension|[]=<core::int, core::String>(#t48, 1, #t49) in #t49);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
let final self::MapLike<core::int, core::String> #t51 = map1 in let final core::int #t52 = 1 in self::Extension|[]<core::int, core::String>(#t51, #t52) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t51, #t52, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t53 = map1 in let final core::int #t54 = 1 in let final core::String? #t55 = self::Extension|[]<core::int, core::String>(#t53, #t54) in #t55 == null ?{core::String} let final core::String #t56 = "4" in let final void #t57 = self::Extension|[]=<core::int, core::String>(#t53, #t54, #t56) in #t56 : #t55{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
let final self::MapLike<core::int, core::String> #t58 = map1 in let final core::int #t59 = 2 in self::Extension|[]<core::int, core::String>(#t58, #t59) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t58, #t59, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t60 = map1 in let final core::int #t61 = 3 in let final core::String? #t62 = self::Extension|[]<core::int, core::String>(#t60, #t61) in #t62 == null ?{core::String} let final core::String #t63 = "3" in let final void #t64 = self::Extension|[]=<core::int, core::String>(#t60, #t61, #t63) in #t63 : #t62{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -108,11 +108,11 @@ static method explicitInferredTypeArguments() → dynamic {
self::expect("1", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t84 = map1 in let final core::String #t85 = "2" in let final void #t86 = self::Extension|[]=<core::int, core::String>(#t84, 1, #t85) in #t85);
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
let final self::MapLike<core::int, core::String> #t87 = map1 in let final core::int #t88 = 1 in self::Extension|[]<core::int, core::String>(#t87, #t88) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t87, #t88, "3") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
self::expect("2", let final self::MapLike<core::int, core::String> #t89 = map1 in let final core::int #t90 = 1 in let final core::String? #t91 = self::Extension|[]<core::int, core::String>(#t89, #t90) in #t91 == null ?{core::String} let final core::String #t92 = "4" in let final void #t93 = self::Extension|[]=<core::int, core::String>(#t89, #t90, #t92) in #t92 : #t91{core::String});
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 1));
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
let final self::MapLike<core::int, core::String> #t94 = map1 in let final core::int #t95 = 2 in self::Extension|[]<core::int, core::String>(#t94, #t95) == null ?{core::String?} self::Extension|[]=<core::int, core::String>(#t94, #t95, "2") : null;
self::expect("2", self::Extension|[]<core::int, core::String>(map1, 2));
self::expect("3", let final self::MapLike<core::int, core::String> #t96 = map1 in let final core::int #t97 = 3 in let final core::String? #t98 = self::Extension|[]<core::int, core::String>(#t96, #t97) in #t98 == null ?{core::String} let final core::String #t99 = "3" in let final void #t100 = self::Extension|[]=<core::int, core::String>(#t96, #t97, #t99) in #t99 : #t98{core::String});
self::expect("3", self::Extension|[]<core::int, core::String>(map1, 3));
@@ -57,9 +57,9 @@ static method test2(self::Class? c) → dynamic {
self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
self::expect(null, let final self::Class? #t39 = c in #t39 == null ?{Null} null : let final has-declared-initializer Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39{self::Class}, #t40) in #t40);
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int} self::Extension|set#property(#t42, 42) : null;
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int?} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int?} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
@@ -57,9 +57,9 @@ static method test2(self::Class? c) → dynamic {
self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
self::expect(null, let final self::Class? #t39 = c in #t39 == null ?{Null} null : let final has-declared-initializer Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39{self::Class}, #t40) in #t40);
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int} self::Extension|set#property(#t42, 42) : null;
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int?} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int?} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
@@ -57,9 +57,9 @@ static method test2(self::Class? c) → dynamic {
self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
self::expect(null, let final self::Class? #t39 = c in #t39 == null ?{Null} null : let final has-declared-initializer Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39{self::Class}, #t40) in #t40);
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int} self::Extension|set#property(#t42, 42) : null;
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int?} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int?} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
@@ -57,9 +57,9 @@ static method test2(self::Class? c) → dynamic {
self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
self::expect(null, let final self::Class? #t39 = c in #t39 == null ?{Null} null : let final has-declared-initializer Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39{self::Class}, #t40) in #t40);
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int} self::Extension|set#property(#t42, 42) : null;
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int?} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int?} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
@@ -57,9 +57,9 @@ static method test2(self::Class? c) → dynamic {
self::expect(42, let final self::Class? #t31 = c in #t31 == null ?{core::int?} null : let final core::int? #t32 = self::Extension|get#property(#t31) in #t32 == null ?{core::int} let final core::int #t33 = 42 in let final void #t34 = self::Extension|set#property(#t31, #t33) in #t33 : #t32{core::int});
self::expect(42, let final self::Class? #t35 = c in #t35 == null ?{core::int?} null : let final core::int? #t36 = self::Extension|get#property(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 87 in let final void #t38 = self::Extension|set#property(#t35, #t37) in #t37 : #t36{core::int});
self::expect(null, let final self::Class? #t39 = c in #t39 == null ?{Null} null : let final has-declared-initializer Null #t40 = null in let final void #t41 = self::Extension|set#property(#t39{self::Class}, #t40) in #t40);
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int} self::Extension|set#property(#t42, 42) : null;
let final self::Class? #t42 = c in #t42 == null ?{core::int?} null : self::Extension|get#property(#t42) == null ?{core::int?} self::Extension|set#property(#t42, 42) : null;
self::expect(42, let final self::Class? #t43 = c in #t43 == null ?{core::int?} null : self::Extension|get#property(#t43{self::Class}));
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int} self::Extension|set#property(#t44, 87) : null;
let final self::Class? #t44 = c in #t44 == null ?{core::int?} null : self::Extension|get#property(#t44) == null ?{core::int?} self::Extension|set#property(#t44, 87) : null;
self::expect(42, let final self::Class? #t45 = c in #t45 == null ?{core::int?} null : self::Extension|get#property(#t45{self::Class}));
let final self::Class? #t46 = c in #t46 == null ?{void} null : self::Extension|set#property(#t46{self::Class}, null);
self::expect(null, let final self::Class? #t47 = c in #t47 == null ?{core::int?} null : self::Extension|get#property(#t47{self::Class}));
@@ -3,6 +3,6 @@ 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;
let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String?} #t1.{Never}foo = "foo" : null;
}
static method main() → dynamic {}
@@ -3,6 +3,6 @@ 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;
let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String?} #t1.{Never}foo = "foo" : null;
}
static method main() → dynamic {}
@@ -3,6 +3,6 @@ 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;
let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String?} #t1.{Never}foo = "foo" : null;
}
static method main() → dynamic {}
@@ -3,6 +3,6 @@ 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;
let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String?} #t1.{Never}foo = "foo" : null;
}
static method main() → dynamic {}
@@ -3,6 +3,6 @@ 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;
let final Never #t1 = throw "some value" in #t1{Never}.foo == null ?{core::String?} #t1.{Never}foo = "foo" : null;
}
static method main() → dynamic {}
@@ -0,0 +1,71 @@
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
class A {
double? foo1;
String? foo2;
int foo3 = 0;
void operator []=(bool key, String? value) {}
String? operator [](bool key) => "";
}
class B extends A {
test() {
// IfNullSuperIndexSet
{
super[false] ??= ""; // forEffect=true
var x = super[false] ??= ""; // forEffect=false
}
}
}
extension E on dynamic {
void operator []=(String key, int? value) {}
int? operator [](String key) => 0;
}
main() {
// NullAwareIfNullSet
{
A a = new A();
a?.foo1 ??= 42; // forEffect=true
var x = a?.foo1 ??= 42; // forEffect=false
}
// IfNullIndexSet
{
final Map<String, Map<String, String>> nestedMap =
<String, Map<String, String>>{};
nestedMap?['hello'] ??= <String, String>{}; // forEffect=true
var x = nestedMap?['hello'] ??= <String, String>{}; // forEffect=false
}
// IfNullExtensionIndexSet
{
E(false)['hello'] ??= 1; // forEffect=true
var x = E(false)['hello'] ??= 1; // forEffect=false
}
// IfNullPropertySet
{
A a = new A();
a.foo2 ??= ""; // forEffect=true
var x = a.foo2 ??= ""; // forEffect=false
}
// IfNullSet
{
bool? b1;
bool? b2;
b1 ??= false; // forEffect=true
var x = b2 ??= false; // forEffect=false
}
// NullAwareCompoundSet
{
A? a = new A();
a?.foo3 += 1;
}
}
@@ -0,0 +1,64 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::double? foo1 = null;
field core::String? foo2 = null;
field core::int foo3 = 0;
synthetic constructor •() → self::A
: super core::Object::•()
;
operator []=(core::bool key, core::String? value) → void {}
operator [](core::bool key) → core::String?
return "";
}
class B extends self::A {
synthetic constructor •() → self::B
: super self::A::•()
;
method test() → dynamic {
{
let final core::bool #t1 = false in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "") : null;
core::String x = let final core::bool #t2 = false in let final core::String? #t3 = super.{self::A::[]}(#t2) in #t3 == null ?{core::String} let final core::String #t4 = "" in let final void #t5 = super.{self::A::[]=}(#t2, #t4) in #t4 : #t3{core::String};
}
}
}
extension E on dynamic {
operator []= = self::E|[]=;
operator [] = self::E|[];
}
static extension-member method E|[]=(lowered final dynamic #this, core::String key, core::int? value) → void {}
static extension-member method E|[](lowered final dynamic #this, core::String key) → core::int?
return 0;
static method main() → dynamic {
{
self::A a = new self::A::•();
let final self::A #t6 = a in #t6 == null ?{core::double?} null : #t6.{self::A::foo1}{core::double?} == null ?{core::double?} #t6.{self::A::foo1} = 42.0 : null;
core::double? x = let final self::A #t7 = a in #t7 == null ?{core::double?} null : let final core::double? #t8 = #t7.{self::A::foo1}{core::double?} in #t8 == null ?{core::double} #t7.{self::A::foo1} = 42.0 : #t8{core::double};
}
{
final core::Map<core::String, core::Map<core::String, core::String>> nestedMap = <core::String, core::Map<core::String, core::String>>{};
let final core::Map<core::String, core::Map<core::String, core::String>> #t9 = nestedMap in #t9 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t10 = "hello" in #t9.{core::Map::[]}(#t10){(core::Object?) → core::Map<core::String, core::String>?} == null ?{core::Map<core::String, core::String>?} #t9.{core::Map::[]=}(#t10, <core::String, core::String>{}){(core::String, core::Map<core::String, core::String>) → void} : null;
core::Map<core::String, core::String>? x = let final core::Map<core::String, core::Map<core::String, core::String>> #t11 = nestedMap in #t11 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t12 = "hello" in let final core::Map<core::String, core::String>? #t13 = #t11.{core::Map::[]}(#t12){(core::Object?) → core::Map<core::String, core::String>?} in #t13 == null ?{core::Map<core::String, core::String>} let final core::Map<core::String, core::String> #t14 = <core::String, core::String>{} in let final void #t15 = #t11.{core::Map::[]=}(#t12, #t14){(core::String, core::Map<core::String, core::String>) → void} in #t14 : #t13{core::Map<core::String, core::String>};
}
{
let final dynamic #t16 = false in let final core::String #t17 = "hello" in self::E|[](#t16, #t17) == null ?{core::int?} self::E|[]=(#t16, #t17, 1) : null;
core::int x = let final dynamic #t18 = false in let final core::String #t19 = "hello" in let final core::int? #t20 = self::E|[](#t18, #t19) in #t20 == null ?{core::int} let final core::int #t21 = 1 in let final void #t22 = self::E|[]=(#t18, #t19, #t21) in #t21 : #t20{core::int};
}
{
self::A a = new self::A::•();
let final self::A #t23 = a in #t23.{self::A::foo2}{core::String?} == null ?{core::String?} #t23.{self::A::foo2} = "" : null;
core::String x = let final self::A #t24 = a in let final core::String? #t25 = #t24.{self::A::foo2}{core::String?} in #t25 == null ?{core::String} #t24.{self::A::foo2} = "" : #t25{core::String};
}
{
core::bool? b1;
core::bool? b2;
b1 == null ?{core::bool?} b1 = false : null;
core::bool x = let final core::bool? #t26 = b2 in #t26 == null ?{core::bool} b2 = false : #t26{core::bool};
}
{
self::A? a = new self::A::•();
let final self::A #t27 = a{self::A} in #t27 == null ?{core::int?} null : #t27.{self::A::foo3} = #t27.{self::A::foo3}{core::int}.{core::num::+}(1){(core::num) → core::int};
}
}
@@ -0,0 +1,88 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::double? foo1 = null;
field core::String? foo2 = null;
field core::int foo3 = 0;
synthetic constructor •() → self::A
: super core::Object::•()
;
operator []=(core::bool key, core::String? value) → void {}
operator [](core::bool key) → core::String?
return "";
}
class B extends self::A {
synthetic constructor •() → self::B
: super self::A::•()
;
method test() → dynamic {
{
let final core::bool #t1 = false in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "") : null;
core::String x = let final core::bool #t2 = false in let final core::String? #t3 = super.{self::A::[]}(#t2) in #t3 == null ?{core::String} let final core::String #t4 = "" in let final void #t5 = super.{self::A::[]=}(#t2, #t4) in #t4 : #t3{core::String};
}
}
}
extension E on dynamic {
operator []= = self::E|[]=;
operator [] = self::E|[];
}
static extension-member method E|[]=(lowered final dynamic #this, core::String key, core::int? value) → void {}
static extension-member method E|[](lowered final dynamic #this, core::String key) → core::int?
return 0;
static method main() → dynamic {
{
self::A a = new self::A::•();
let final self::A #t6 = a in #t6 == null ?{core::double?} null : #t6.{self::A::foo1}{core::double?} == null ?{core::double?} #t6.{self::A::foo1} = 42.0 : null;
core::double? x = let final self::A #t7 = a in #t7 == null ?{core::double?} null : let final core::double? #t8 = #t7.{self::A::foo1}{core::double?} in #t8 == null ?{core::double} #t7.{self::A::foo1} = 42.0 : #t8{core::double};
}
{
final core::Map<core::String, core::Map<core::String, core::String>> nestedMap = <core::String, core::Map<core::String, core::String>>{};
let final core::Map<core::String, core::Map<core::String, core::String>> #t9 = nestedMap in #t9 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t10 = "hello" in #t9.{core::Map::[]}(#t10){(core::Object?) → core::Map<core::String, core::String>?} == null ?{core::Map<core::String, core::String>?} #t9.{core::Map::[]=}(#t10, <core::String, core::String>{}){(core::String, core::Map<core::String, core::String>) → void} : null;
core::Map<core::String, core::String>? x = let final core::Map<core::String, core::Map<core::String, core::String>> #t11 = nestedMap in #t11 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t12 = "hello" in let final core::Map<core::String, core::String>? #t13 = #t11.{core::Map::[]}(#t12){(core::Object?) → core::Map<core::String, core::String>?} in #t13 == null ?{core::Map<core::String, core::String>} let final core::Map<core::String, core::String> #t14 = <core::String, core::String>{} in let final void #t15 = #t11.{core::Map::[]=}(#t12, #t14){(core::String, core::Map<core::String, core::String>) → void} in #t14 : #t13{core::Map<core::String, core::String>};
}
{
let final core::bool* #t16 = false in let final core::String #t17 = "hello" in self::E|[](#t16, #t17) == null ?{core::int?} self::E|[]=(#t16, #t17, 1) : null;
core::int x = let final core::bool* #t18 = false in let final core::String #t19 = "hello" in let final core::int? #t20 = self::E|[](#t18, #t19) in #t20 == null ?{core::int} let final core::int #t21 = 1 in let final void #t22 = self::E|[]=(#t18, #t19, #t21) in #t21 : #t20{core::int};
}
{
self::A a = new self::A::•();
let final self::A #t23 = a in #t23.{self::A::foo2}{core::String?} == null ?{core::String?} #t23.{self::A::foo2} = "" : null;
core::String x = let final self::A #t24 = a in let final core::String? #t25 = #t24.{self::A::foo2}{core::String?} in #t25 == null ?{core::String} #t24.{self::A::foo2} = "" : #t25{core::String};
}
{
core::bool? b1;
core::bool? b2;
b1 == null ?{core::bool?} b1 = false : null;
core::bool x = let final core::bool? #t26 = b2 in #t26 == null ?{core::bool} b2 = false : #t26{core::bool};
}
{
self::A? a = new self::A::•();
let final self::A #t27 = a{self::A} in #t27 == null ?{core::int?} null : #t27.{self::A::foo3} = #t27.{self::A::foo3}{core::int}.{core::num::+}(1){(core::num) → core::int};
}
}
Extra constant evaluation status:
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:18:13 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:18:13 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:21 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:21 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:32 -> StringConstant("")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:32 -> StringConstant("")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:41:16 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:41:16 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:42:24 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:42:24 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:7 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:14 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:7 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:14 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:15 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:22 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:15 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:22 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:35 -> IntConstant(1)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:35 -> IntConstant(1)
Extra constant evaluation: evaluated: 154, effectively constant: 20
@@ -0,0 +1,18 @@
class A {
double? foo1;
String? foo2;
int foo3 = 0;
void operator []=(bool key, String? value) {}
String? operator [](bool key) => "";
}
class B extends A {
test() {}
}
extension E on dynamic {
void operator []=(String key, int? value) {}
int? operator [](String key) => 0;
}
main() {}
@@ -0,0 +1,18 @@
class A {
String? foo2;
String? operator [](bool key) => "";
double? foo1;
int foo3 = 0;
void operator []=(bool key, String? value) {}
}
class B extends A {
test() {}
}
extension E on dynamic {
int? operator [](String key) => 0;
void operator []=(String key, int? value) {}
}
main() {}
@@ -0,0 +1,64 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::double? foo1 = null;
field core::String? foo2 = null;
field core::int foo3 = 0;
synthetic constructor •() → self::A
: super core::Object::•()
;
operator []=(core::bool key, core::String? value) → void {}
operator [](core::bool key) → core::String?
return "";
}
class B extends self::A {
synthetic constructor •() → self::B
: super self::A::•()
;
method test() → dynamic {
{
let final core::bool #t1 = false in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "") : null;
core::String x = let final core::bool #t2 = false in let final core::String? #t3 = super.{self::A::[]}(#t2) in #t3 == null ?{core::String} let final core::String #t4 = "" in let final void #t5 = super.{self::A::[]=}(#t2, #t4) in #t4 : #t3{core::String};
}
}
}
extension E on dynamic {
operator []= = self::E|[]=;
operator [] = self::E|[];
}
static extension-member method E|[]=(lowered final dynamic #this, core::String key, core::int? value) → void {}
static extension-member method E|[](lowered final dynamic #this, core::String key) → core::int?
return 0;
static method main() → dynamic {
{
self::A a = new self::A::•();
let final self::A #t6 = a in #t6 == null ?{core::double?} null : #t6.{self::A::foo1}{core::double?} == null ?{core::double?} #t6.{self::A::foo1} = 42.0 : null;
core::double? x = let final self::A #t7 = a in #t7 == null ?{core::double?} null : let final core::double? #t8 = #t7.{self::A::foo1}{core::double?} in #t8 == null ?{core::double} #t7.{self::A::foo1} = 42.0 : #t8{core::double};
}
{
final core::Map<core::String, core::Map<core::String, core::String>> nestedMap = <core::String, core::Map<core::String, core::String>>{};
let final core::Map<core::String, core::Map<core::String, core::String>> #t9 = nestedMap in #t9 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t10 = "hello" in #t9.{core::Map::[]}(#t10){(core::Object?) → core::Map<core::String, core::String>?} == null ?{core::Map<core::String, core::String>?} #t9.{core::Map::[]=}(#t10, <core::String, core::String>{}){(core::String, core::Map<core::String, core::String>) → void} : null;
core::Map<core::String, core::String>? x = let final core::Map<core::String, core::Map<core::String, core::String>> #t11 = nestedMap in #t11 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t12 = "hello" in let final core::Map<core::String, core::String>? #t13 = #t11.{core::Map::[]}(#t12){(core::Object?) → core::Map<core::String, core::String>?} in #t13 == null ?{core::Map<core::String, core::String>} let final core::Map<core::String, core::String> #t14 = <core::String, core::String>{} in let final void #t15 = #t11.{core::Map::[]=}(#t12, #t14){(core::String, core::Map<core::String, core::String>) → void} in #t14 : #t13{core::Map<core::String, core::String>};
}
{
let final dynamic #t16 = false in let final core::String #t17 = "hello" in self::E|[](#t16, #t17) == null ?{core::int?} self::E|[]=(#t16, #t17, 1) : null;
core::int x = let final dynamic #t18 = false in let final core::String #t19 = "hello" in let final core::int? #t20 = self::E|[](#t18, #t19) in #t20 == null ?{core::int} let final core::int #t21 = 1 in let final void #t22 = self::E|[]=(#t18, #t19, #t21) in #t21 : #t20{core::int};
}
{
self::A a = new self::A::•();
let final self::A #t23 = a in #t23.{self::A::foo2}{core::String?} == null ?{core::String?} #t23.{self::A::foo2} = "" : null;
core::String x = let final self::A #t24 = a in let final core::String? #t25 = #t24.{self::A::foo2}{core::String?} in #t25 == null ?{core::String} #t24.{self::A::foo2} = "" : #t25{core::String};
}
{
core::bool? b1;
core::bool? b2;
b1 == null ?{core::bool?} b1 = false : null;
core::bool x = let final core::bool? #t26 = b2 in #t26 == null ?{core::bool} b2 = false : #t26{core::bool};
}
{
self::A? a = new self::A::•();
let final self::A #t27 = a{self::A} in #t27 == null ?{core::int?} null : #t27.{self::A::foo3} = #t27.{self::A::foo3}{core::int}.{core::num::+}(1){(core::num) → core::int};
}
}
@@ -0,0 +1,64 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::double? foo1 = null;
field core::String? foo2 = null;
field core::int foo3 = 0;
synthetic constructor •() → self::A
: super core::Object::•()
;
operator []=(core::bool key, core::String? value) → void {}
operator [](core::bool key) → core::String?
return "";
}
class B extends self::A {
synthetic constructor •() → self::B
: super self::A::•()
;
method test() → dynamic {
{
let final core::bool #t1 = false in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "") : null;
core::String x = let final core::bool #t2 = false in let final core::String? #t3 = super.{self::A::[]}(#t2) in #t3 == null ?{core::String} let final core::String #t4 = "" in let final void #t5 = super.{self::A::[]=}(#t2, #t4) in #t4 : #t3{core::String};
}
}
}
extension E on dynamic {
operator []= = self::E|[]=;
operator [] = self::E|[];
}
static extension-member method E|[]=(lowered final dynamic #this, core::String key, core::int? value) → void {}
static extension-member method E|[](lowered final dynamic #this, core::String key) → core::int?
return 0;
static method main() → dynamic {
{
self::A a = new self::A::•();
let final self::A #t6 = a in #t6 == null ?{core::double?} null : #t6.{self::A::foo1}{core::double?} == null ?{core::double?} #t6.{self::A::foo1} = 42.0 : null;
core::double? x = let final self::A #t7 = a in #t7 == null ?{core::double?} null : let final core::double? #t8 = #t7.{self::A::foo1}{core::double?} in #t8 == null ?{core::double} #t7.{self::A::foo1} = 42.0 : #t8{core::double};
}
{
final core::Map<core::String, core::Map<core::String, core::String>> nestedMap = <core::String, core::Map<core::String, core::String>>{};
let final core::Map<core::String, core::Map<core::String, core::String>> #t9 = nestedMap in #t9 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t10 = "hello" in #t9.{core::Map::[]}(#t10){(core::Object?) → core::Map<core::String, core::String>?} == null ?{core::Map<core::String, core::String>?} #t9.{core::Map::[]=}(#t10, <core::String, core::String>{}){(core::String, core::Map<core::String, core::String>) → void} : null;
core::Map<core::String, core::String>? x = let final core::Map<core::String, core::Map<core::String, core::String>> #t11 = nestedMap in #t11 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t12 = "hello" in let final core::Map<core::String, core::String>? #t13 = #t11.{core::Map::[]}(#t12){(core::Object?) → core::Map<core::String, core::String>?} in #t13 == null ?{core::Map<core::String, core::String>} let final core::Map<core::String, core::String> #t14 = <core::String, core::String>{} in let final void #t15 = #t11.{core::Map::[]=}(#t12, #t14){(core::String, core::Map<core::String, core::String>) → void} in #t14 : #t13{core::Map<core::String, core::String>};
}
{
let final dynamic #t16 = false in let final core::String #t17 = "hello" in self::E|[](#t16, #t17) == null ?{core::int?} self::E|[]=(#t16, #t17, 1) : null;
core::int x = let final dynamic #t18 = false in let final core::String #t19 = "hello" in let final core::int? #t20 = self::E|[](#t18, #t19) in #t20 == null ?{core::int} let final core::int #t21 = 1 in let final void #t22 = self::E|[]=(#t18, #t19, #t21) in #t21 : #t20{core::int};
}
{
self::A a = new self::A::•();
let final self::A #t23 = a in #t23.{self::A::foo2}{core::String?} == null ?{core::String?} #t23.{self::A::foo2} = "" : null;
core::String x = let final self::A #t24 = a in let final core::String? #t25 = #t24.{self::A::foo2}{core::String?} in #t25 == null ?{core::String} #t24.{self::A::foo2} = "" : #t25{core::String};
}
{
core::bool? b1;
core::bool? b2;
b1 == null ?{core::bool?} b1 = false : null;
core::bool x = let final core::bool? #t26 = b2 in #t26 == null ?{core::bool} b2 = false : #t26{core::bool};
}
{
self::A? a = new self::A::•();
let final self::A #t27 = a{self::A} in #t27 == null ?{core::int?} null : #t27.{self::A::foo3} = #t27.{self::A::foo3}{core::int}.{core::num::+}(1){(core::num) → core::int};
}
}
@@ -0,0 +1,31 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::double? foo1;
field core::String? foo2;
field core::int foo3;
synthetic constructor •() → self::A
;
operator []=(core::bool key, core::String? value) → void
;
operator [](core::bool key) → core::String?
;
}
class B extends self::A {
synthetic constructor •() → self::B
;
method test() → dynamic
;
}
extension E on dynamic {
operator []= = self::E|[]=;
operator [] = self::E|[];
}
static extension-member method E|[]=(lowered final dynamic #this, core::String key, core::int? value) → void
;
static extension-member method E|[](lowered final dynamic #this, core::String key) → core::int?
;
static method main() → dynamic
;
@@ -0,0 +1,88 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::double? foo1 = null;
field core::String? foo2 = null;
field core::int foo3 = 0;
synthetic constructor •() → self::A
: super core::Object::•()
;
operator []=(core::bool key, core::String? value) → void {}
operator [](core::bool key) → core::String?
return "";
}
class B extends self::A {
synthetic constructor •() → self::B
: super self::A::•()
;
method test() → dynamic {
{
let final core::bool #t1 = false in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "") : null;
core::String x = let final core::bool #t2 = false in let final core::String? #t3 = super.{self::A::[]}(#t2) in #t3 == null ?{core::String} let final core::String #t4 = "" in let final void #t5 = super.{self::A::[]=}(#t2, #t4) in #t4 : #t3{core::String};
}
}
}
extension E on dynamic {
operator []= = self::E|[]=;
operator [] = self::E|[];
}
static extension-member method E|[]=(lowered final dynamic #this, core::String key, core::int? value) → void {}
static extension-member method E|[](lowered final dynamic #this, core::String key) → core::int?
return 0;
static method main() → dynamic {
{
self::A a = new self::A::•();
let final self::A #t6 = a in #t6 == null ?{core::double?} null : #t6.{self::A::foo1}{core::double?} == null ?{core::double?} #t6.{self::A::foo1} = 42.0 : null;
core::double? x = let final self::A #t7 = a in #t7 == null ?{core::double?} null : let final core::double? #t8 = #t7.{self::A::foo1}{core::double?} in #t8 == null ?{core::double} #t7.{self::A::foo1} = 42.0 : #t8{core::double};
}
{
final core::Map<core::String, core::Map<core::String, core::String>> nestedMap = <core::String, core::Map<core::String, core::String>>{};
let final core::Map<core::String, core::Map<core::String, core::String>> #t9 = nestedMap in #t9 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t10 = "hello" in #t9.{core::Map::[]}(#t10){(core::Object?) → core::Map<core::String, core::String>?} == null ?{core::Map<core::String, core::String>?} #t9.{core::Map::[]=}(#t10, <core::String, core::String>{}){(core::String, core::Map<core::String, core::String>) → void} : null;
core::Map<core::String, core::String>? x = let final core::Map<core::String, core::Map<core::String, core::String>> #t11 = nestedMap in #t11 == null ?{core::Map<core::String, core::String>?} null : let final core::String #t12 = "hello" in let final core::Map<core::String, core::String>? #t13 = #t11.{core::Map::[]}(#t12){(core::Object?) → core::Map<core::String, core::String>?} in #t13 == null ?{core::Map<core::String, core::String>} let final core::Map<core::String, core::String> #t14 = <core::String, core::String>{} in let final void #t15 = #t11.{core::Map::[]=}(#t12, #t14){(core::String, core::Map<core::String, core::String>) → void} in #t14 : #t13{core::Map<core::String, core::String>};
}
{
let final core::bool* #t16 = false in let final core::String #t17 = "hello" in self::E|[](#t16, #t17) == null ?{core::int?} self::E|[]=(#t16, #t17, 1) : null;
core::int x = let final core::bool* #t18 = false in let final core::String #t19 = "hello" in let final core::int? #t20 = self::E|[](#t18, #t19) in #t20 == null ?{core::int} let final core::int #t21 = 1 in let final void #t22 = self::E|[]=(#t18, #t19, #t21) in #t21 : #t20{core::int};
}
{
self::A a = new self::A::•();
let final self::A #t23 = a in #t23.{self::A::foo2}{core::String?} == null ?{core::String?} #t23.{self::A::foo2} = "" : null;
core::String x = let final self::A #t24 = a in let final core::String? #t25 = #t24.{self::A::foo2}{core::String?} in #t25 == null ?{core::String} #t24.{self::A::foo2} = "" : #t25{core::String};
}
{
core::bool? b1;
core::bool? b2;
b1 == null ?{core::bool?} b1 = false : null;
core::bool x = let final core::bool? #t26 = b2 in #t26 == null ?{core::bool} b2 = false : #t26{core::bool};
}
{
self::A? a = new self::A::•();
let final self::A #t27 = a{self::A} in #t27 == null ?{core::int?} null : #t27.{self::A::foo3} = #t27.{self::A::foo3}{core::int}.{core::num::+}(1){(core::num) → core::int};
}
}
Extra constant evaluation status:
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:18:13 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:18:13 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:21 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:21 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:32 -> StringConstant("")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:19:32 -> StringConstant("")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:41:16 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:41:16 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:42:24 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:42:24 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:7 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:14 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:7 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:47:14 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:15 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:22 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:15 -> BoolConstant(false)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:22 -> StringConstant("hello")
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:35 -> IntConstant(1)
Evaluated: VariableGet @ org-dartlang-testcase:///issue55372.dart:48:35 -> IntConstant(1)
Extra constant evaluation: evaluated: 154, effectively constant: 20
@@ -24,9 +24,9 @@ static method test() → dynamic {
self::Foo foo = new self::Foo::•();
let final self::Foo #t1 = foo in #t1 == null ?{core::int?} null : #t1.{self::Foo::field} = 5;
self::Foo::staticField = 5;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int} #t2.{self::Foo::field} = 5 : null;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int?} #t2.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int} #t3.{self::Foo::field} = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int?} #t3.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
core::int intValue = let final core::int #t4 = foo.{self::Foo::field}{core::int} in #t4 == null ?{core::int} 6 : #t4;
core::num numValue = let final core::int #t5 = foo.{self::Foo::field}{core::int} in #t5 == null ?{core::num} 4.5 : #t5;
@@ -24,9 +24,9 @@ static method test() → dynamic {
self::Foo foo = new self::Foo::•();
let final self::Foo #t1 = foo in #t1 == null ?{core::int?} null : #t1.{self::Foo::field} = 5;
self::Foo::staticField = 5;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int} #t2.{self::Foo::field} = 5 : null;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int?} #t2.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int} #t3.{self::Foo::field} = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int?} #t3.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
core::int intValue = let final core::int #t4 = foo.{self::Foo::field}{core::int} in #t4 == null ?{core::int} 6 : #t4;
core::num numValue = let final core::int #t5 = foo.{self::Foo::field}{core::int} in #t5 == null ?{core::num} 4.5 : #t5;
@@ -24,9 +24,9 @@ static method test() → dynamic {
self::Foo foo = new self::Foo::•();
let final self::Foo #t1 = foo in #t1 == null ?{core::int?} null : #t1.{self::Foo::field} = 5;
self::Foo::staticField = 5;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int} #t2.{self::Foo::field} = 5 : null;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int?} #t2.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int} #t3.{self::Foo::field} = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int?} #t3.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
core::int intValue = let final core::int #t4 = foo.{self::Foo::field}{core::int} in #t4 == null ?{core::int} 6 : #t4;
core::num numValue = let final core::int #t5 = foo.{self::Foo::field}{core::int} in #t5 == null ?{core::num} 4.5 : #t5;
@@ -24,9 +24,9 @@ static method test() → dynamic {
self::Foo foo = new self::Foo::•();
let final self::Foo #t1 = foo in #t1 == null ?{core::int?} null : #t1.{self::Foo::field} = 5;
self::Foo::staticField = 5;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int} #t2.{self::Foo::field} = 5 : null;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int?} #t2.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int} #t3.{self::Foo::field} = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int?} #t3.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
core::int intValue = let final core::int #t4 = foo.{self::Foo::field}{core::int} in #t4 == null ?{core::int} 6 : #t4;
core::num numValue = let final core::int #t5 = foo.{self::Foo::field}{core::int} in #t5 == null ?{core::num} 4.5 : #t5;
@@ -24,9 +24,9 @@ static method test() → dynamic {
self::Foo foo = new self::Foo::•();
let final self::Foo #t1 = foo in #t1 == null ?{core::int?} null : #t1.{self::Foo::field} = 5;
self::Foo::staticField = 5;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int} #t2.{self::Foo::field} = 5 : null;
let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int?} #t2.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int} #t3.{self::Foo::field} = 5 : null;
let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int?} #t3.{self::Foo::field} = 5 : null;
self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
core::int intValue = let final core::int #t4 = foo.{self::Foo::field}{core::int} in #t4 == null ?{core::int} 6 : #t4;
core::num numValue = let final core::int #t5 = foo.{self::Foo::field}{core::int} in #t5 == null ?{core::num} 4.5 : #t5;
@@ -196,7 +196,7 @@ class Subclass1 extends self::Class1 {
}
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num} super.{self::Class1::[]=}(#t4, c) : null;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num?} super.{self::Class1::[]=}(#t4, c) : null;
let final self::Class1 #t5 = new self::Class1::•() in let final core::int #t6 = b in #t5.{self::Class1::[]}(#t6){(core::int) → core::num?} == null ?{core::num?} #t5.{self::Class1::[]=}(#t6, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:71:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
Class1()[b] ??= c; // Error.
^" in c as{TypeError} core::int){(core::int, core::int) → void} : null;
@@ -262,7 +262,7 @@ abstract class Mixin extends self::Class /*isMixinDeclaration*/ {
abstract class Mixin1 extends self::Class1 /*isMixinDeclaration*/ {
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num?} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
super[a] ??= c; // Error.
^" in c as{TypeError} core::int) : null;
let final self::Class1 #t11 = new self::Class1::•() in let final core::int #t12 = b in #t11.{self::Class1::[]}(#t12){(core::int) → core::num?} == null ?{core::num?} #t11.{self::Class1::[]=}(#t12, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:112:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
@@ -196,7 +196,7 @@ class Subclass1 extends self::Class1 {
}
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num} super.{self::Class1::[]=}(#t4, c) : null;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num?} super.{self::Class1::[]=}(#t4, c) : null;
let final self::Class1 #t5 = new self::Class1::•() in let final core::int #t6 = b in #t5.{self::Class1::[]}(#t6){(core::int) → core::num?} == null ?{core::num?} #t5.{self::Class1::[]=}(#t6, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:71:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
Class1()[b] ??= c; // Error.
^" in c as{TypeError} core::int){(core::int, core::int) → void} : null;
@@ -262,7 +262,7 @@ abstract class Mixin extends self::Class /*isMixinDeclaration*/ {
abstract class Mixin1 extends self::Class1 /*isMixinDeclaration*/ {
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num?} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
super[a] ??= c; // Error.
^" in c as{TypeError} core::int) : null;
let final self::Class1 #t11 = new self::Class1::•() in let final core::int #t12 = b in #t11.{self::Class1::[]}(#t12){(core::int) → core::num?} == null ?{core::num?} #t11.{self::Class1::[]=}(#t12, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:112:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
@@ -196,7 +196,7 @@ class Subclass1 extends self::Class1 {
}
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num} super.{self::Class1::[]=}(#t4, c) : null;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num?} super.{self::Class1::[]=}(#t4, c) : null;
let final self::Class1 #t5 = new self::Class1::•() in let final core::int #t6 = b in #t5.{self::Class1::[]}(#t6){(core::int) → core::num?} == null ?{core::num?} #t5.{self::Class1::[]=}(#t6, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:71:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
Class1()[b] ??= c; // Error.
^" in c as{TypeError} core::int){(core::int, core::int) → void} : null;
@@ -262,7 +262,7 @@ abstract class Mixin extends self::Class /*isMixinDeclaration*/ {
abstract class Mixin1 extends self::Class1 /*isMixinDeclaration*/ {
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num?} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
super[a] ??= c; // Error.
^" in c as{TypeError} core::int) : null;
let final self::Class1 #t11 = new self::Class1::•() in let final core::int #t12 = b in #t11.{self::Class1::[]}(#t12){(core::int) → core::num?} == null ?{core::num?} #t11.{self::Class1::[]=}(#t12, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:112:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
@@ -196,7 +196,7 @@ class Subclass1 extends self::Class1 {
}
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num} super.{self::Class1::[]=}(#t4, c) : null;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num?} super.{self::Class1::[]=}(#t4, c) : null;
let final self::Class1 #t5 = new self::Class1::•() in let final core::int #t6 = b in #t5.{self::Class1::[]}(#t6){(core::int) → core::num?} == null ?{core::num?} #t5.{self::Class1::[]=}(#t6, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:71:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
Class1()[b] ??= c; // Error.
^" in c as{TypeError} core::int){(core::int, core::int) → void} : null;
@@ -262,7 +262,7 @@ abstract class Mixin extends self::Class /*isMixinDeclaration*/ {
abstract class Mixin1 extends self::Class1 /*isMixinDeclaration*/ {
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num?} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
super[a] ??= c; // Error.
^" in c as{TypeError} core::int) : null;
let final self::Class1 #t11 = new self::Class1::•() in let final core::int #t12 = b in #t11.{self::Class1::[]}(#t12){(core::int) → core::num?} == null ?{core::num?} #t11.{self::Class1::[]=}(#t12, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:112:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
@@ -196,7 +196,7 @@ class Subclass1 extends self::Class1 {
}
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num} super.{self::Class1::[]=}(#t4, c) : null;
let final core::int #t4 = a in super.{self::Class1::[]}(#t4) == null ?{core::num?} super.{self::Class1::[]=}(#t4, c) : null;
let final self::Class1 #t5 = new self::Class1::•() in let final core::int #t6 = b in #t5.{self::Class1::[]}(#t6){(core::int) → core::num?} == null ?{core::num?} #t5.{self::Class1::[]=}(#t6, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:71:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
Class1()[b] ??= c; // Error.
^" in c as{TypeError} core::int){(core::int, core::int) → void} : null;
@@ -262,7 +262,7 @@ abstract class Mixin extends self::Class /*isMixinDeclaration*/ {
abstract class Mixin1 extends self::Class1 /*isMixinDeclaration*/ {
operator []=(covariant-by-declaration core::int a, covariant-by-declaration core::int b) → void {
core::num c = a;
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
let final core::int #t10 = a in super.{self::Class1::[]}(#t10) == null ?{core::num?} super.{self::Class1::[]=}(#t10, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:111:18: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
super[a] ??= c; // Error.
^" in c as{TypeError} core::int) : null;
let final self::Class1 #t11 = new self::Class1::•() in let final core::int #t12 = b in #t11.{self::Class1::[]}(#t12){(core::int) → core::num?} == null ?{core::num?} #t11.{self::Class1::[]=}(#t12, invalid-expression "pkg/front_end/testcases/general/super_signature_access.dart:112:21: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
@@ -40,7 +40,7 @@ class Test extends core::Object {
;
static method test(self::Test? t) → void {
let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B?} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
@@ -40,7 +40,7 @@ class Test extends core::Object {
;
static method test(self::Test? t) → void {
let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B?} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
@@ -40,7 +40,7 @@ class Test extends core::Object {
;
static method test(self::Test? t) → void {
let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B?} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
@@ -40,7 +40,7 @@ class Test extends core::Object {
;
static method test(self::Test? t) → void {
let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B?} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
@@ -40,7 +40,7 @@ class Test extends core::Object {
;
static method test(self::Test? t) → void {
let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B?} #t2.{self::Test::member} = self::f<self::B>() : null;
let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
@@ -49,7 +49,7 @@ static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d,
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
@@ -57,12 +57,12 @@ Try accessing using ?. instead.
let final self::test::T% #t2 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}. = x : null;
let final dynamic #t3 = d in #t3{dynamic}.foo == null ?{dynamic} #t3.{dynamic}foo = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int} #t5.{self::A::foo} = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int?} #t5.{self::A::foo} = x : null;
}
static extension-member method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
@@ -74,7 +74,7 @@ static method testExtension<T extends self::B?>(self::B? b, self::testExtension:
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
@@ -82,10 +82,10 @@ Try accessing using ?. instead.
let final self::testExtension::T% #t7 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|set#fooExtension(#t7, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int} self::Extension|set#fooExtension(#t9, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int?} self::Extension|set#fooExtension(#t9, x) : null;
}
static method main() → dynamic {}
@@ -49,7 +49,7 @@ static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d,
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
@@ -57,12 +57,12 @@ Try accessing using ?. instead.
let final self::test::T% #t2 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}. = x : null;
let final dynamic #t3 = d in #t3{dynamic}.foo == null ?{dynamic} #t3.{dynamic}foo = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int} #t5.{self::A::foo} = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int?} #t5.{self::A::foo} = x : null;
}
static extension-member method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
@@ -74,7 +74,7 @@ static method testExtension<T extends self::B?>(self::B? b, self::testExtension:
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
@@ -82,10 +82,10 @@ Try accessing using ?. instead.
let final self::testExtension::T% #t7 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|set#fooExtension(#t7, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int} self::Extension|set#fooExtension(#t9, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int?} self::Extension|set#fooExtension(#t9, x) : null;
}
static method main() → dynamic {}
@@ -49,7 +49,7 @@ static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d,
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
@@ -57,12 +57,12 @@ Try accessing using ?. instead.
let final self::test::T% #t2 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}. = x : null;
let final dynamic #t3 = d in #t3{dynamic}.foo == null ?{dynamic} #t3.{dynamic}foo = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int} #t5.{self::A::foo} = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int?} #t5.{self::A::foo} = x : null;
}
static extension-member method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
@@ -74,7 +74,7 @@ static method testExtension<T extends self::B?>(self::B? b, self::testExtension:
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
@@ -82,10 +82,10 @@ Try accessing using ?. instead.
let final self::testExtension::T% #t7 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|set#fooExtension(#t7, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int} self::Extension|set#fooExtension(#t9, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int?} self::Extension|set#fooExtension(#t9, x) : null;
}
static method main() → dynamic {}
@@ -49,7 +49,7 @@ static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d,
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
@@ -57,12 +57,12 @@ Try accessing using ?. instead.
let final self::test::T% #t2 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}. = x : null;
let final dynamic #t3 = d in #t3{dynamic}.foo == null ?{dynamic} #t3.{dynamic}foo = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int} #t5.{self::A::foo} = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int?} #t5.{self::A::foo} = x : null;
}
static extension-member method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
@@ -74,7 +74,7 @@ static method testExtension<T extends self::B?>(self::B? b, self::testExtension:
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
@@ -82,10 +82,10 @@ Try accessing using ?. instead.
let final self::testExtension::T% #t7 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|set#fooExtension(#t7, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int} self::Extension|set#fooExtension(#t9, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int?} self::Extension|set#fooExtension(#t9, x) : null;
}
static method main() → dynamic {}
@@ -49,7 +49,7 @@ static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d,
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
^^^" in #t1.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
a.foo ??= x; // Error.
@@ -57,12 +57,12 @@ Try accessing using ?. instead.
let final self::test::T% #t2 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
^^^" in #t2.{self::A::foo}{<nullable>}.{core::int?} == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:14:5: Error: Property 'foo' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.foo ??= x; // Error.
^^^" in #t2.{self::A::foo}{<nullable>}. = x : null;
let final dynamic #t3 = d in #t3{dynamic}.foo == null ?{dynamic} #t3.{dynamic}foo = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int} #t5.{self::A::foo} = x : null;
let final self::A? #t4 = a in #t4 == null ?{core::int?} null : let final self::A #t5 = #t4{self::A}.{self::A::bar}{self::A} in #t5.{self::A::foo}{core::int?} == null ?{core::int?} #t5.{self::A::foo} = x : null;
}
static extension-member method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
@@ -74,7 +74,7 @@ static method testExtension<T extends self::B?>(self::B? b, self::testExtension:
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t6) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
b.fooExtension ??= x; // Error.
@@ -82,10 +82,10 @@ Try accessing using ?. instead.
let final self::testExtension::T% #t7 = t in invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
^^^^^^^^^^^^" in self::Extension|get#fooExtension(#t7) == null ?{core::int?} invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:29:5: Error: Property 'fooExtension' cannot be accessed on 'T' because it is potentially null.
Try accessing using ?. instead.
t.fooExtension ??= x; // Error.
^^^^^^^^^^^^" in self::Extension|set#fooExtension(#t7, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int} self::Extension|set#fooExtension(#t9, x) : null;
let final self::B? #t8 = b in #t8 == null ?{core::int?} null : let final self::B #t9 = self::Extension|get#barExtension(#t8{self::B}) in self::Extension|get#fooExtension(#t9) == null ?{core::int?} self::Extension|set#fooExtension(#t9, x) : null;
}
static method main() → dynamic {}
@@ -175,10 +175,10 @@ Try accessing using ?. instead.
^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null.
nullableClass?.nullableField += 2; // error
^" in #t20.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError} core::int?;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int} #t26.{self::Class::nullableField} = 0 : null;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t26.{self::Class::nullableField} = 0 : null;
invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null.
- 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'.
Try calling using ?.call instead.
@@ -175,10 +175,10 @@ Try accessing using ?. instead.
^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null.
nullableClass?.nullableField += 2; // error
^" in #t20.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError,Unchecked} core::int?;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int} #t26.{self::Class::nullableField} = 0 : null;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t26.{self::Class::nullableField} = 0 : null;
invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null.
- 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'.
Try calling using ?.call instead.
@@ -175,10 +175,10 @@ Try accessing using ?. instead.
^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null.
nullableClass?.nullableField += 2; // error
^" in #t20.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError} core::int?;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int} #t26.{self::Class::nullableField} = 0 : null;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t26.{self::Class::nullableField} = 0 : null;
invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null.
- 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'.
Try calling using ?.call instead.
@@ -175,10 +175,10 @@ Try accessing using ?. instead.
^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null.
nullableClass?.nullableField += 2; // error
^" in #t20.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError} core::int?;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int} #t26.{self::Class::nullableField} = 0 : null;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t26.{self::Class::nullableField} = 0 : null;
invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null.
- 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'.
Try calling using ?.call instead.
@@ -175,10 +175,10 @@ Try accessing using ?. instead.
^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null.
nullableClass?.nullableField += 2; // error
^" in #t20.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError,Unchecked} core::int?;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int} #t26.{self::Class::nullableField} = 0 : null;
let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t21.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t22.{self::Class::nullableField} = 0 : null;
let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int?} #t24.{self::Class::nonNullableField} = 0 : null;
let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int?} #t26.{self::Class::nullableField} = 0 : null;
invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null.
- 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'.
Try calling using ?.call instead.
@@ -251,9 +251,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t260 = n1 in #t260 == null ?{self::Class1?} null : let final self::Class1? #t261 = #t260.{self::Class1::nullable1}{self::Class1?} in #t261 == null ?{self::Class1} #t260.{self::Class1::nullable1} = n1{self::Class1} : #t261{self::Class1};
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t264 = n1 in #t264 == null ?{self::Class1?} null : let final self::Class1 #t265 = #t264{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1? #t266 = #t265.{self::Class1::nullable1}{self::Class1?} in #t266 == null ?{self::Class1} #t265.{self::Class1::nullable1} = n1{self::Class1} : #t266{self::Class1};
let final self::Class1? #t267 = n1 in #t267 == null ?{self::Class1?} null : let final self::Class1 #t268 = #t267{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t269 = n1{self::Class1} in #t268.{self::Class1::[]}(#t269){(self::Class1?) → self::Class1?} == null ?{self::Class1?} #t268.{self::Class1::[]=}(#t269, n1{self::Class1}){(self::Class1?, self::Class1?) → void} : null;
n1 = let final self::Class1? #t270 = n1 in #t270 == null ?{self::Class1?} null : let final self::Class1 #t271 = #t270{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t272 = n1{self::Class1} in let final self::Class1? #t273 = #t271.{self::Class1::[]}(#t272){(self::Class1?) → self::Class1?} in #t273 == null ?{self::Class1} let final self::Class1 #t274 = n1{self::Class1} in let final void #t275 = #t271.{self::Class1::[]=}(#t272, #t274){(self::Class1?, self::Class1?) → void} in #t274 : #t273{self::Class1};
@@ -251,9 +251,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t260 = n1 in #t260 == null ?{self::Class1?} null : let final self::Class1? #t261 = #t260.{self::Class1::nullable1}{self::Class1?} in #t261 == null ?{self::Class1} #t260.{self::Class1::nullable1} = n1{self::Class1} : #t261{self::Class1};
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t264 = n1 in #t264 == null ?{self::Class1?} null : let final self::Class1 #t265 = #t264{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1? #t266 = #t265.{self::Class1::nullable1}{self::Class1?} in #t266 == null ?{self::Class1} #t265.{self::Class1::nullable1} = n1{self::Class1} : #t266{self::Class1};
let final self::Class1? #t267 = n1 in #t267 == null ?{self::Class1?} null : let final self::Class1 #t268 = #t267{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t269 = n1{self::Class1} in #t268.{self::Class1::[]}(#t269){(self::Class1?) → self::Class1?} == null ?{self::Class1?} #t268.{self::Class1::[]=}(#t269, n1{self::Class1}){(self::Class1?, self::Class1?) → void} : null;
n1 = let final self::Class1? #t270 = n1 in #t270 == null ?{self::Class1?} null : let final self::Class1 #t271 = #t270{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t272 = n1{self::Class1} in let final self::Class1? #t273 = #t271.{self::Class1::[]}(#t272){(self::Class1?) → self::Class1?} in #t273 == null ?{self::Class1} let final self::Class1 #t274 = n1{self::Class1} in let final void #t275 = #t271.{self::Class1::[]=}(#t272, #t274){(self::Class1?, self::Class1?) → void} in #t274 : #t273{self::Class1};
@@ -251,9 +251,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t260 = n1 in #t260 == null ?{self::Class1?} null : let final self::Class1? #t261 = #t260.{self::Class1::nullable1}{self::Class1?} in #t261 == null ?{self::Class1} #t260.{self::Class1::nullable1} = n1{self::Class1} : #t261{self::Class1};
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t264 = n1 in #t264 == null ?{self::Class1?} null : let final self::Class1 #t265 = #t264{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1? #t266 = #t265.{self::Class1::nullable1}{self::Class1?} in #t266 == null ?{self::Class1} #t265.{self::Class1::nullable1} = n1{self::Class1} : #t266{self::Class1};
let final self::Class1? #t267 = n1 in #t267 == null ?{self::Class1?} null : let final self::Class1 #t268 = #t267{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t269 = n1{self::Class1} in #t268.{self::Class1::[]}(#t269){(self::Class1?) → self::Class1?} == null ?{self::Class1?} #t268.{self::Class1::[]=}(#t269, n1{self::Class1}){(self::Class1?, self::Class1?) → void} : null;
n1 = let final self::Class1? #t270 = n1 in #t270 == null ?{self::Class1?} null : let final self::Class1 #t271 = #t270{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t272 = n1{self::Class1} in let final self::Class1? #t273 = #t271.{self::Class1::[]}(#t272){(self::Class1?) → self::Class1?} in #t273 == null ?{self::Class1} let final self::Class1 #t274 = n1{self::Class1} in let final void #t275 = #t271.{self::Class1::[]=}(#t272, #t274){(self::Class1?, self::Class1?) → void} in #t274 : #t273{self::Class1};
@@ -251,9 +251,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t260 = n1 in #t260 == null ?{self::Class1?} null : let final self::Class1? #t261 = #t260.{self::Class1::nullable1}{self::Class1?} in #t261 == null ?{self::Class1} #t260.{self::Class1::nullable1} = n1{self::Class1} : #t261{self::Class1};
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t264 = n1 in #t264 == null ?{self::Class1?} null : let final self::Class1 #t265 = #t264{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1? #t266 = #t265.{self::Class1::nullable1}{self::Class1?} in #t266 == null ?{self::Class1} #t265.{self::Class1::nullable1} = n1{self::Class1} : #t266{self::Class1};
let final self::Class1? #t267 = n1 in #t267 == null ?{self::Class1?} null : let final self::Class1 #t268 = #t267{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t269 = n1{self::Class1} in #t268.{self::Class1::[]}(#t269){(self::Class1?) → self::Class1?} == null ?{self::Class1?} #t268.{self::Class1::[]=}(#t269, n1{self::Class1}){(self::Class1?, self::Class1?) → void} : null;
n1 = let final self::Class1? #t270 = n1 in #t270 == null ?{self::Class1?} null : let final self::Class1 #t271 = #t270{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t272 = n1{self::Class1} in let final self::Class1? #t273 = #t271.{self::Class1::[]}(#t272){(self::Class1?) → self::Class1?} in #t273 == null ?{self::Class1} let final self::Class1 #t274 = n1{self::Class1} in let final void #t275 = #t271.{self::Class1::[]=}(#t272, #t274){(self::Class1?, self::Class1?) → void} in #t274 : #t273{self::Class1};
@@ -251,9 +251,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t259 = n1 in #t259 == null ?{self::Class1?} null : #t259.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t259.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t260 = n1 in #t260 == null ?{self::Class1?} null : let final self::Class1? #t261 = #t260.{self::Class1::nullable1}{self::Class1?} in #t261 == null ?{self::Class1} #t260.{self::Class1::nullable1} = n1{self::Class1} : #t261{self::Class1};
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
let final self::Class1? #t262 = n1 in #t262 == null ?{self::Class1?} null : let final self::Class1 #t263 = #t262{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in #t263.{self::Class1::nullable1}{self::Class1?} == null ?{self::Class1?} #t263.{self::Class1::nullable1} = n1{self::Class1} : null;
n1 = let final self::Class1? #t264 = n1 in #t264 == null ?{self::Class1?} null : let final self::Class1 #t265 = #t264{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1? #t266 = #t265.{self::Class1::nullable1}{self::Class1?} in #t266 == null ?{self::Class1} #t265.{self::Class1::nullable1} = n1{self::Class1} : #t266{self::Class1};
let final self::Class1? #t267 = n1 in #t267 == null ?{self::Class1?} null : let final self::Class1 #t268 = #t267{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t269 = n1{self::Class1} in #t268.{self::Class1::[]}(#t269){(self::Class1?) → self::Class1?} == null ?{self::Class1?} #t268.{self::Class1::[]=}(#t269, n1{self::Class1}){(self::Class1?, self::Class1?) → void} : null;
n1 = let final self::Class1? #t270 = n1 in #t270 == null ?{self::Class1?} null : let final self::Class1 #t271 = #t270{self::Class1}.{self::Class1::nonNullable1}{self::Class1} in let final self::Class1 #t272 = n1{self::Class1} in let final self::Class1? #t273 = #t271.{self::Class1::[]}(#t272){(self::Class1?) → self::Class1?} in #t273 == null ?{self::Class1} let final self::Class1 #t274 = n1{self::Class1} in let final void #t275 = #t271.{self::Class1::[]=}(#t272, #t274){(self::Class1?, self::Class1?) → void} in #t274 : #t273{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1?} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
n1 = let final self::Class1? #t350 = n1 in #t350 == null ?{self::Class1?} null : let final self::Class1? #t351 = self::Extension1|get#nullable1(#t350) in #t351 == null ?{self::Class1} let final self::Class1 #t352 = n1{self::Class1} in let final void #t353 = self::Extension1|set#nullable1(#t350, #t352) in #t352 : #t351{self::Class1};
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1?} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
n1 = let final self::Class1? #t356 = n1 in #t356 == null ?{self::Class1?} null : let final self::Class1 #t357 = self::Extension1|get#nonNullable1(#t356{self::Class1}) in let final self::Class1? #t358 = self::Extension1|get#nullable1(#t357) in #t358 == null ?{self::Class1} let final self::Class1 #t359 = n1{self::Class1} in let final void #t360 = self::Extension1|set#nullable1(#t357, #t359) in #t359 : #t358{self::Class1};
let final self::Class1? #t361 = n1 in #t361 == null ?{self::Class1?} null : let final self::Class1 #t362 = self::Extension1|get#nonNullable1(#t361{self::Class1}) in let final self::Class1 #t363 = n1{self::Class1} in self::Extension1|[](#t362, #t363) == null ?{self::Class1?} self::Extension1|[]=(#t362, #t363, n1{self::Class1}) : null;
n1 = let final self::Class1? #t364 = n1 in #t364 == null ?{self::Class1?} null : let final self::Class1 #t365 = self::Extension1|get#nonNullable1(#t364{self::Class1}) in let final self::Class1 #t366 = n1{self::Class1} in let final self::Class1? #t367 = self::Extension1|[](#t365, #t366) in #t367 == null ?{self::Class1} let final self::Class1 #t368 = n1{self::Class1} in let final void #t369 = self::Extension1|[]=(#t365, #t366, #t368) in #t368 : #t367{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1?} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
n1 = let final self::Class1? #t350 = n1 in #t350 == null ?{self::Class1?} null : let final self::Class1? #t351 = self::Extension1|get#nullable1(#t350) in #t351 == null ?{self::Class1} let final self::Class1 #t352 = n1{self::Class1} in let final void #t353 = self::Extension1|set#nullable1(#t350, #t352) in #t352 : #t351{self::Class1};
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1?} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
n1 = let final self::Class1? #t356 = n1 in #t356 == null ?{self::Class1?} null : let final self::Class1 #t357 = self::Extension1|get#nonNullable1(#t356{self::Class1}) in let final self::Class1? #t358 = self::Extension1|get#nullable1(#t357) in #t358 == null ?{self::Class1} let final self::Class1 #t359 = n1{self::Class1} in let final void #t360 = self::Extension1|set#nullable1(#t357, #t359) in #t359 : #t358{self::Class1};
let final self::Class1? #t361 = n1 in #t361 == null ?{self::Class1?} null : let final self::Class1 #t362 = self::Extension1|get#nonNullable1(#t361{self::Class1}) in let final self::Class1 #t363 = n1{self::Class1} in self::Extension1|[](#t362, #t363) == null ?{self::Class1?} self::Extension1|[]=(#t362, #t363, n1{self::Class1}) : null;
n1 = let final self::Class1? #t364 = n1 in #t364 == null ?{self::Class1?} null : let final self::Class1 #t365 = self::Extension1|get#nonNullable1(#t364{self::Class1}) in let final self::Class1 #t366 = n1{self::Class1} in let final self::Class1? #t367 = self::Extension1|[](#t365, #t366) in #t367 == null ?{self::Class1} let final self::Class1 #t368 = n1{self::Class1} in let final void #t369 = self::Extension1|[]=(#t365, #t366, #t368) in #t368 : #t367{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1?} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
n1 = let final self::Class1? #t350 = n1 in #t350 == null ?{self::Class1?} null : let final self::Class1? #t351 = self::Extension1|get#nullable1(#t350) in #t351 == null ?{self::Class1} let final self::Class1 #t352 = n1{self::Class1} in let final void #t353 = self::Extension1|set#nullable1(#t350, #t352) in #t352 : #t351{self::Class1};
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1?} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
n1 = let final self::Class1? #t356 = n1 in #t356 == null ?{self::Class1?} null : let final self::Class1 #t357 = self::Extension1|get#nonNullable1(#t356{self::Class1}) in let final self::Class1? #t358 = self::Extension1|get#nullable1(#t357) in #t358 == null ?{self::Class1} let final self::Class1 #t359 = n1{self::Class1} in let final void #t360 = self::Extension1|set#nullable1(#t357, #t359) in #t359 : #t358{self::Class1};
let final self::Class1? #t361 = n1 in #t361 == null ?{self::Class1?} null : let final self::Class1 #t362 = self::Extension1|get#nonNullable1(#t361{self::Class1}) in let final self::Class1 #t363 = n1{self::Class1} in self::Extension1|[](#t362, #t363) == null ?{self::Class1?} self::Extension1|[]=(#t362, #t363, n1{self::Class1}) : null;
n1 = let final self::Class1? #t364 = n1 in #t364 == null ?{self::Class1?} null : let final self::Class1 #t365 = self::Extension1|get#nonNullable1(#t364{self::Class1}) in let final self::Class1 #t366 = n1{self::Class1} in let final self::Class1? #t367 = self::Extension1|[](#t365, #t366) in #t367 == null ?{self::Class1} let final self::Class1 #t368 = n1{self::Class1} in let final void #t369 = self::Extension1|[]=(#t365, #t366, #t368) in #t368 : #t367{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1?} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
n1 = let final self::Class1? #t350 = n1 in #t350 == null ?{self::Class1?} null : let final self::Class1? #t351 = self::Extension1|get#nullable1(#t350) in #t351 == null ?{self::Class1} let final self::Class1 #t352 = n1{self::Class1} in let final void #t353 = self::Extension1|set#nullable1(#t350, #t352) in #t352 : #t351{self::Class1};
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1?} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
n1 = let final self::Class1? #t356 = n1 in #t356 == null ?{self::Class1?} null : let final self::Class1 #t357 = self::Extension1|get#nonNullable1(#t356{self::Class1}) in let final self::Class1? #t358 = self::Extension1|get#nullable1(#t357) in #t358 == null ?{self::Class1} let final self::Class1 #t359 = n1{self::Class1} in let final void #t360 = self::Extension1|set#nullable1(#t357, #t359) in #t359 : #t358{self::Class1};
let final self::Class1? #t361 = n1 in #t361 == null ?{self::Class1?} null : let final self::Class1 #t362 = self::Extension1|get#nonNullable1(#t361{self::Class1}) in let final self::Class1 #t363 = n1{self::Class1} in self::Extension1|[](#t362, #t363) == null ?{self::Class1?} self::Extension1|[]=(#t362, #t363, n1{self::Class1}) : null;
n1 = let final self::Class1? #t364 = n1 in #t364 == null ?{self::Class1?} null : let final self::Class1 #t365 = self::Extension1|get#nonNullable1(#t364{self::Class1}) in let final self::Class1 #t366 = n1{self::Class1} in let final self::Class1? #t367 = self::Extension1|[](#t365, #t366) in #t367 == null ?{self::Class1} let final self::Class1 #t368 = n1{self::Class1} in let final void #t369 = self::Extension1|[]=(#t365, #t366, #t368) in #t368 : #t367{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
let final self::Class1? #t349 = n1 in #t349 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t349) == null ?{self::Class1?} self::Extension1|set#nullable1(#t349, n1{self::Class1}) : null;
n1 = let final self::Class1? #t350 = n1 in #t350 == null ?{self::Class1?} null : let final self::Class1? #t351 = self::Extension1|get#nullable1(#t350) in #t351 == null ?{self::Class1} let final self::Class1 #t352 = n1{self::Class1} in let final void #t353 = self::Extension1|set#nullable1(#t350, #t352) in #t352 : #t351{self::Class1};
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in self::Extension1|get#nullable1(#t355) == null ?{self::Class1?} self::Extension1|set#nullable1(#t355, n1{self::Class1}) : null;
n1 = let final self::Class1? #t356 = n1 in #t356 == null ?{self::Class1?} null : let final self::Class1 #t357 = self::Extension1|get#nonNullable1(#t356{self::Class1}) in let final self::Class1? #t358 = self::Extension1|get#nullable1(#t357) in #t358 == null ?{self::Class1} let final self::Class1 #t359 = n1{self::Class1} in let final void #t360 = self::Extension1|set#nullable1(#t357, #t359) in #t359 : #t358{self::Class1};
let final self::Class1? #t361 = n1 in #t361 == null ?{self::Class1?} null : let final self::Class1 #t362 = self::Extension1|get#nonNullable1(#t361{self::Class1}) in let final self::Class1 #t363 = n1{self::Class1} in self::Extension1|[](#t362, #t363) == null ?{self::Class1?} self::Extension1|[]=(#t362, #t363, n1{self::Class1}) : null;
n1 = let final self::Class1? #t364 = n1 in #t364 == null ?{self::Class1?} null : let final self::Class1 #t365 = self::Extension1|get#nonNullable1(#t364{self::Class1}) in let final self::Class1 #t366 = n1{self::Class1} in let final self::Class1? #t367 = self::Extension1|[](#t365, #t366) in #t367 == null ?{self::Class1} let final self::Class1 #t368 = n1{self::Class1} in let final void #t369 = self::Extension1|[]=(#t365, #t366, #t368) in #t368 : #t367{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1?} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
n1 = let final self::Class1? #t348 = n1 in #t348 == null ?{self::Class1?} null : let final self::Class1? #t349 = self::Extension1|get#nullable1(#t348) in #t349 == null ?{self::Class1} let final self::Class1 #t350 = n1{self::Class1} in let final void #t351 = self::Extension1|set#nullable1(#t348, #t350) in #t350 : #t349{self::Class1};
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1?} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
n1 = let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in let final self::Class1? #t356 = self::Extension1|get#nullable1(#t355) in #t356 == null ?{self::Class1} let final self::Class1 #t357 = n1{self::Class1} in let final void #t358 = self::Extension1|set#nullable1(#t355, #t357) in #t357 : #t356{self::Class1};
let final self::Class1? #t359 = n1 in #t359 == null ?{self::Class1?} null : let final self::Class1 #t360 = self::Extension1|get#nonNullable1(#t359{self::Class1}) in let final self::Class1 #t361 = n1{self::Class1} in self::Extension1|[](#t360, #t361) == null ?{self::Class1?} self::Extension1|[]=(#t360, #t361, n1{self::Class1}) : null;
n1 = let final self::Class1? #t362 = n1 in #t362 == null ?{self::Class1?} null : let final self::Class1 #t363 = self::Extension1|get#nonNullable1(#t362{self::Class1}) in let final self::Class1 #t364 = n1{self::Class1} in let final self::Class1? #t365 = self::Extension1|[](#t363, #t364) in #t365 == null ?{self::Class1} let final self::Class1 #t366 = n1{self::Class1} in let final void #t367 = self::Extension1|[]=(#t363, #t364, #t366) in #t366 : #t365{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1?} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
n1 = let final self::Class1? #t348 = n1 in #t348 == null ?{self::Class1?} null : let final self::Class1? #t349 = self::Extension1|get#nullable1(#t348) in #t349 == null ?{self::Class1} let final self::Class1 #t350 = n1{self::Class1} in let final void #t351 = self::Extension1|set#nullable1(#t348, #t350) in #t350 : #t349{self::Class1};
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1?} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
n1 = let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in let final self::Class1? #t356 = self::Extension1|get#nullable1(#t355) in #t356 == null ?{self::Class1} let final self::Class1 #t357 = n1{self::Class1} in let final void #t358 = self::Extension1|set#nullable1(#t355, #t357) in #t357 : #t356{self::Class1};
let final self::Class1? #t359 = n1 in #t359 == null ?{self::Class1?} null : let final self::Class1 #t360 = self::Extension1|get#nonNullable1(#t359{self::Class1}) in let final self::Class1 #t361 = n1{self::Class1} in self::Extension1|[](#t360, #t361) == null ?{self::Class1?} self::Extension1|[]=(#t360, #t361, n1{self::Class1}) : null;
n1 = let final self::Class1? #t362 = n1 in #t362 == null ?{self::Class1?} null : let final self::Class1 #t363 = self::Extension1|get#nonNullable1(#t362{self::Class1}) in let final self::Class1 #t364 = n1{self::Class1} in let final self::Class1? #t365 = self::Extension1|[](#t363, #t364) in #t365 == null ?{self::Class1} let final self::Class1 #t366 = n1{self::Class1} in let final void #t367 = self::Extension1|[]=(#t363, #t364, #t366) in #t366 : #t365{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1?} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
n1 = let final self::Class1? #t348 = n1 in #t348 == null ?{self::Class1?} null : let final self::Class1? #t349 = self::Extension1|get#nullable1(#t348) in #t349 == null ?{self::Class1} let final self::Class1 #t350 = n1{self::Class1} in let final void #t351 = self::Extension1|set#nullable1(#t348, #t350) in #t350 : #t349{self::Class1};
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1?} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
n1 = let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in let final self::Class1? #t356 = self::Extension1|get#nullable1(#t355) in #t356 == null ?{self::Class1} let final self::Class1 #t357 = n1{self::Class1} in let final void #t358 = self::Extension1|set#nullable1(#t355, #t357) in #t357 : #t356{self::Class1};
let final self::Class1? #t359 = n1 in #t359 == null ?{self::Class1?} null : let final self::Class1 #t360 = self::Extension1|get#nonNullable1(#t359{self::Class1}) in let final self::Class1 #t361 = n1{self::Class1} in self::Extension1|[](#t360, #t361) == null ?{self::Class1?} self::Extension1|[]=(#t360, #t361, n1{self::Class1}) : null;
n1 = let final self::Class1? #t362 = n1 in #t362 == null ?{self::Class1?} null : let final self::Class1 #t363 = self::Extension1|get#nonNullable1(#t362{self::Class1}) in let final self::Class1 #t364 = n1{self::Class1} in let final self::Class1? #t365 = self::Extension1|[](#t363, #t364) in #t365 == null ?{self::Class1} let final self::Class1 #t366 = n1{self::Class1} in let final void #t367 = self::Extension1|[]=(#t363, #t364, #t366) in #t366 : #t365{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1?} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
n1 = let final self::Class1? #t348 = n1 in #t348 == null ?{self::Class1?} null : let final self::Class1? #t349 = self::Extension1|get#nullable1(#t348) in #t349 == null ?{self::Class1} let final self::Class1 #t350 = n1{self::Class1} in let final void #t351 = self::Extension1|set#nullable1(#t348, #t350) in #t350 : #t349{self::Class1};
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1?} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
n1 = let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in let final self::Class1? #t356 = self::Extension1|get#nullable1(#t355) in #t356 == null ?{self::Class1} let final self::Class1 #t357 = n1{self::Class1} in let final void #t358 = self::Extension1|set#nullable1(#t355, #t357) in #t357 : #t356{self::Class1};
let final self::Class1? #t359 = n1 in #t359 == null ?{self::Class1?} null : let final self::Class1 #t360 = self::Extension1|get#nonNullable1(#t359{self::Class1}) in let final self::Class1 #t361 = n1{self::Class1} in self::Extension1|[](#t360, #t361) == null ?{self::Class1?} self::Extension1|[]=(#t360, #t361, n1{self::Class1}) : null;
n1 = let final self::Class1? #t362 = n1 in #t362 == null ?{self::Class1?} null : let final self::Class1 #t363 = self::Extension1|get#nonNullable1(#t362{self::Class1}) in let final self::Class1 #t364 = n1{self::Class1} in let final self::Class1? #t365 = self::Extension1|[](#t363, #t364) in #t365 == null ?{self::Class1} let final self::Class1 #t366 = n1{self::Class1} in let final void #t367 = self::Extension1|[]=(#t363, #t364, #t366) in #t366 : #t365{self::Class1};
@@ -280,9 +280,9 @@ static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
let final self::Class1? #t347 = n1 in #t347 == null ?{self::Class1?} null : self::Extension1|get#nullable1(#t347) == null ?{self::Class1?} self::Extension1|set#nullable1(#t347, n1{self::Class1}) : null;
n1 = let final self::Class1? #t348 = n1 in #t348 == null ?{self::Class1?} null : let final self::Class1? #t349 = self::Extension1|get#nullable1(#t348) in #t349 == null ?{self::Class1} let final self::Class1 #t350 = n1{self::Class1} in let final void #t351 = self::Extension1|set#nullable1(#t348, #t350) in #t350 : #t349{self::Class1};
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
let final self::Class1? #t352 = n1 in #t352 == null ?{self::Class1?} null : let final self::Class1 #t353 = self::Extension1|get#nonNullable1(#t352{self::Class1}) in self::Extension1|get#nullable1(#t353) == null ?{self::Class1?} self::Extension1|set#nullable1(#t353, n1{self::Class1}) : null;
n1 = let final self::Class1? #t354 = n1 in #t354 == null ?{self::Class1?} null : let final self::Class1 #t355 = self::Extension1|get#nonNullable1(#t354{self::Class1}) in let final self::Class1? #t356 = self::Extension1|get#nullable1(#t355) in #t356 == null ?{self::Class1} let final self::Class1 #t357 = n1{self::Class1} in let final void #t358 = self::Extension1|set#nullable1(#t355, #t357) in #t357 : #t356{self::Class1};
let final self::Class1? #t359 = n1 in #t359 == null ?{self::Class1?} null : let final self::Class1 #t360 = self::Extension1|get#nonNullable1(#t359{self::Class1}) in let final self::Class1 #t361 = n1{self::Class1} in self::Extension1|[](#t360, #t361) == null ?{self::Class1?} self::Extension1|[]=(#t360, #t361, n1{self::Class1}) : null;
n1 = let final self::Class1? #t362 = n1 in #t362 == null ?{self::Class1?} null : let final self::Class1 #t363 = self::Extension1|get#nonNullable1(#t362{self::Class1}) in let final self::Class1 #t364 = n1{self::Class1} in let final self::Class1? #t365 = self::Extension1|[](#t363, #t364) in #t365 == null ?{self::Class1} let final self::Class1 #t366 = n1{self::Class1} in let final void #t367 = self::Extension1|[]=(#t363, #t364, #t366) in #t366 : #t365{self::Class1};
@@ -55,8 +55,8 @@ static method main() → dynamic {
let final self::Class2? #t40 = c2 in #t40 == null ?{core::int?} null : let final core::int #t41 = 0 in self::Extension|[]=(#t40{self::Class2}, #t41, self::Extension|[](#t40{self::Class2}, #t41).{core::num::+}(1.{core::num::+}(self::Extension|[](c2{self::Class2}, 0)){(core::num) → core::int}){(core::num) → core::int});
let final self::Class2? #t42 = c2 in #t42 == null ?{core::int?} null : let final core::int #t43 = 0 in let final core::int #t44 = self::Extension|[](#t42{self::Class2}, #t43).{core::num::+}(1){(core::num) → core::int} in let final void #t45 = self::Extension|[]=(#t42{self::Class2}, #t43, #t44) in #t44;
let final self::Class2? #t46 = c2 in #t46 == null ?{core::int?} null : let final core::int #t47 = 0 in self::Extension|[]=(#t46{self::Class2}, #t47, self::Extension|[](#t46{self::Class2}, #t47).{core::num::+}(1){(core::num) → core::int});
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int?} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int?} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class1? #t52 = c1 in #t52 == null ?{core::int?} null : let final self::Class2? #t53 = #t52{self::Class1}.{self::Class1::field}{self::Class2?} in #t53 == null ?{core::int?} null : self::Extension|[](#t53{self::Class2}, 0);
let final self::Class1? #t54 = c1 in #t54 == null ?{core::int?} null : let final self::Class2? #t55 = #t54{self::Class1}.{self::Class1::field}{self::Class2?} in #t55 == null ?{core::int?} null : self::Extension|[]=(#t55{self::Class2}, 0, 1);
let final self::Class1? #t56 = c1 in #t56 == null ?{core::int?} null : let final self::Class2? #t57 = #t56{self::Class1}.{self::Class1::field}{self::Class2?} in #t57 == null ?{core::int?} null : self::Extension|[]=(#t57{self::Class2}, 0, 1.{core::num::+}(c1{self::Class1}.{self::Class1::[]}(0){(core::int) → core::int}){(core::num) → core::int});
@@ -73,6 +73,6 @@ static method main() → dynamic {
let final self::Class1? #t88 = c1 in #t88 == null ?{core::int?} null : let final self::Class2? #t89 = #t88{self::Class1}.{self::Class1::field}{self::Class2?} in #t89 == null ?{core::int?} null : let final core::int #t90 = 0 in self::Extension|[]=(#t89{self::Class2}, #t90, self::Extension|[](#t89{self::Class2}, #t90).{core::num::+}(1.{core::num::+}((let final self::Class2? #t91 = c2 in #t91 == null ?{core::int?} null : self::Extension|[](#t91{self::Class2}, 0)!) as core::int){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t92 = c1 in #t92 == null ?{core::int?} null : let final self::Class2? #t93 = #t92{self::Class1}.{self::Class1::field}{self::Class2?} in #t93 == null ?{core::int?} null : let final core::int #t94 = 0 in let final core::int #t95 = self::Extension|[](#t93{self::Class2}, #t94).{core::num::+}(1){(core::num) → core::int} in let final void #t96 = self::Extension|[]=(#t93{self::Class2}, #t94, #t95) in #t95;
let final self::Class1? #t97 = c1 in #t97 == null ?{core::int?} null : let final self::Class2? #t98 = #t97{self::Class1}.{self::Class1::field}{self::Class2?} in #t98 == null ?{core::int?} null : let final core::int #t99 = 0 in self::Extension|[]=(#t98{self::Class2}, #t99, self::Extension|[](#t98{self::Class2}, #t99).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as core::int){(core::num) → core::int}) : null;
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int?} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int?} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as core::int){(core::num) → core::int}) : null;
}
@@ -55,8 +55,8 @@ static method main() → dynamic {
let final self::Class2? #t40 = c2 in #t40 == null ?{core::int?} null : let final core::int #t41 = 0 in self::Extension|[]=(#t40{self::Class2}, #t41, self::Extension|[](#t40{self::Class2}, #t41).{core::num::+}(1.{core::num::+}(self::Extension|[](c2{self::Class2}, 0)){(core::num) → core::int}){(core::num) → core::int});
let final self::Class2? #t42 = c2 in #t42 == null ?{core::int?} null : let final core::int #t43 = 0 in let final core::int #t44 = self::Extension|[](#t42{self::Class2}, #t43).{core::num::+}(1){(core::num) → core::int} in let final void #t45 = self::Extension|[]=(#t42{self::Class2}, #t43, #t44) in #t44;
let final self::Class2? #t46 = c2 in #t46 == null ?{core::int?} null : let final core::int #t47 = 0 in self::Extension|[]=(#t46{self::Class2}, #t47, self::Extension|[](#t46{self::Class2}, #t47).{core::num::+}(1){(core::num) → core::int});
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int?} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int?} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class1? #t52 = c1 in #t52 == null ?{core::int?} null : let final self::Class2? #t53 = #t52{self::Class1}.{self::Class1::field}{self::Class2?} in #t53 == null ?{core::int?} null : self::Extension|[](#t53{self::Class2}, 0);
let final self::Class1? #t54 = c1 in #t54 == null ?{core::int?} null : let final self::Class2? #t55 = #t54{self::Class1}.{self::Class1::field}{self::Class2?} in #t55 == null ?{core::int?} null : self::Extension|[]=(#t55{self::Class2}, 0, 1);
let final self::Class1? #t56 = c1 in #t56 == null ?{core::int?} null : let final self::Class2? #t57 = #t56{self::Class1}.{self::Class1::field}{self::Class2?} in #t57 == null ?{core::int?} null : self::Extension|[]=(#t57{self::Class2}, 0, 1.{core::num::+}(c1{self::Class1}.{self::Class1::[]}(0){(core::int) → core::int}){(core::num) → core::int});
@@ -73,8 +73,8 @@ static method main() → dynamic {
let final self::Class1? #t89 = c1 in #t89 == null ?{core::int?} null : let final self::Class2? #t90 = #t89{self::Class1}.{self::Class1::field}{self::Class2?} in #t90 == null ?{core::int?} null : let final core::int #t91 = 0 in self::Extension|[]=(#t90{self::Class2}, #t91, self::Extension|[](#t90{self::Class2}, #t91).{core::num::+}(1.{core::num::+}(let core::int? #t92 = let final self::Class2? #t93 = c2 in #t93 == null ?{core::int?} null : self::Extension|[](#t93{self::Class2}, 0)! in #t92 == null ?{core::int} #t92 as core::int : #t92{core::int}){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t94 = c1 in #t94 == null ?{core::int?} null : let final self::Class2? #t95 = #t94{self::Class1}.{self::Class1::field}{self::Class2?} in #t95 == null ?{core::int?} null : let final core::int #t96 = 0 in let final core::int #t97 = self::Extension|[](#t95{self::Class2}, #t96).{core::num::+}(1){(core::num) → core::int} in let final void #t98 = self::Extension|[]=(#t95{self::Class2}, #t96, #t97) in #t97;
let final self::Class1? #t99 = c1 in #t99 == null ?{core::int?} null : let final self::Class2? #t100 = #t99{self::Class1}.{self::Class1::field}{self::Class2?} in #t100 == null ?{core::int?} null : let final core::int #t101 = 0 in self::Extension|[]=(#t100{self::Class2}, #t101, self::Extension|[](#t100{self::Class2}, #t101).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t102 = c1 in #t102 == null ?{core::int?} null : let final self::Class2? #t103 = #t102{self::Class1}.{self::Class1::field}{self::Class2?} in #t103 == null ?{core::int?} null : let final core::int #t104 = 0 in self::Extension|[](#t103{self::Class2}, #t104) == null ?{core::int} self::Extension|[]=(#t103{self::Class2}, #t104, 1) : null;
let final self::Class1? #t105 = c1 in #t105 == null ?{core::int?} null : let final self::Class2? #t106 = #t105{self::Class1}.{self::Class1::field}{self::Class2?} in #t106 == null ?{core::int?} null : let final core::int #t107 = 0 in self::Extension|[](#t106{self::Class2}, #t107) == null ?{core::int} self::Extension|[]=(#t106{self::Class2}, #t107, 1.{core::num::+}(let core::int? #t108 = let final self::Class2? #t109 = c2 in #t109 == null ?{core::int?} null : self::Extension|[](#t109{self::Class2}, 1)! in #t108 == null ?{core::int} #t108 as core::int : #t108{core::int}){(core::num) → core::int}) : null;
let final self::Class1? #t102 = c1 in #t102 == null ?{core::int?} null : let final self::Class2? #t103 = #t102{self::Class1}.{self::Class1::field}{self::Class2?} in #t103 == null ?{core::int?} null : let final core::int #t104 = 0 in self::Extension|[](#t103{self::Class2}, #t104) == null ?{core::int?} self::Extension|[]=(#t103{self::Class2}, #t104, 1) : null;
let final self::Class1? #t105 = c1 in #t105 == null ?{core::int?} null : let final self::Class2? #t106 = #t105{self::Class1}.{self::Class1::field}{self::Class2?} in #t106 == null ?{core::int?} null : let final core::int #t107 = 0 in self::Extension|[](#t106{self::Class2}, #t107) == null ?{core::int?} self::Extension|[]=(#t106{self::Class2}, #t107, 1.{core::num::+}(let core::int? #t108 = let final self::Class2? #t109 = c2 in #t109 == null ?{core::int?} null : self::Extension|[](#t109{self::Class2}, 1)! in #t108 == null ?{core::int} #t108 as core::int : #t108{core::int}){(core::num) → core::int}) : null;
}
@@ -55,8 +55,8 @@ static method main() → dynamic {
let final self::Class2? #t40 = c2 in #t40 == null ?{core::int?} null : let final core::int #t41 = 0 in self::Extension|[]=(#t40{self::Class2}, #t41, self::Extension|[](#t40{self::Class2}, #t41).{core::num::+}(1.{core::num::+}(self::Extension|[](c2{self::Class2}, 0)){(core::num) → core::int}){(core::num) → core::int});
let final self::Class2? #t42 = c2 in #t42 == null ?{core::int?} null : let final core::int #t43 = 0 in let final core::int #t44 = self::Extension|[](#t42{self::Class2}, #t43).{core::num::+}(1){(core::num) → core::int} in let final void #t45 = self::Extension|[]=(#t42{self::Class2}, #t43, #t44) in #t44;
let final self::Class2? #t46 = c2 in #t46 == null ?{core::int?} null : let final core::int #t47 = 0 in self::Extension|[]=(#t46{self::Class2}, #t47, self::Extension|[](#t46{self::Class2}, #t47).{core::num::+}(1){(core::num) → core::int});
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int?} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int?} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class1? #t52 = c1 in #t52 == null ?{core::int?} null : let final self::Class2? #t53 = #t52{self::Class1}.{self::Class1::field}{self::Class2?} in #t53 == null ?{core::int?} null : self::Extension|[](#t53{self::Class2}, 0);
let final self::Class1? #t54 = c1 in #t54 == null ?{core::int?} null : let final self::Class2? #t55 = #t54{self::Class1}.{self::Class1::field}{self::Class2?} in #t55 == null ?{core::int?} null : self::Extension|[]=(#t55{self::Class2}, 0, 1);
let final self::Class1? #t56 = c1 in #t56 == null ?{core::int?} null : let final self::Class2? #t57 = #t56{self::Class1}.{self::Class1::field}{self::Class2?} in #t57 == null ?{core::int?} null : self::Extension|[]=(#t57{self::Class2}, 0, 1.{core::num::+}(c1{self::Class1}.{self::Class1::[]}(0){(core::int) → core::int}){(core::num) → core::int});
@@ -73,6 +73,6 @@ static method main() → dynamic {
let final self::Class1? #t88 = c1 in #t88 == null ?{core::int?} null : let final self::Class2? #t89 = #t88{self::Class1}.{self::Class1::field}{self::Class2?} in #t89 == null ?{core::int?} null : let final core::int #t90 = 0 in self::Extension|[]=(#t89{self::Class2}, #t90, self::Extension|[](#t89{self::Class2}, #t90).{core::num::+}(1.{core::num::+}((let final self::Class2? #t91 = c2 in #t91 == null ?{core::int?} null : self::Extension|[](#t91{self::Class2}, 0)!) as core::int){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t92 = c1 in #t92 == null ?{core::int?} null : let final self::Class2? #t93 = #t92{self::Class1}.{self::Class1::field}{self::Class2?} in #t93 == null ?{core::int?} null : let final core::int #t94 = 0 in let final core::int #t95 = self::Extension|[](#t93{self::Class2}, #t94).{core::num::+}(1){(core::num) → core::int} in let final void #t96 = self::Extension|[]=(#t93{self::Class2}, #t94, #t95) in #t95;
let final self::Class1? #t97 = c1 in #t97 == null ?{core::int?} null : let final self::Class2? #t98 = #t97{self::Class1}.{self::Class1::field}{self::Class2?} in #t98 == null ?{core::int?} null : let final core::int #t99 = 0 in self::Extension|[]=(#t98{self::Class2}, #t99, self::Extension|[](#t98{self::Class2}, #t99).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as core::int){(core::num) → core::int}) : null;
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int?} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int?} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as core::int){(core::num) → core::int}) : null;
}
@@ -55,8 +55,8 @@ static method main() → dynamic {
let final self::Class2? #t40 = c2 in #t40 == null ?{core::int?} null : let final core::int #t41 = 0 in self::Extension|[]=(#t40{self::Class2}, #t41, self::Extension|[](#t40{self::Class2}, #t41).{core::num::+}(1.{core::num::+}(self::Extension|[](c2{self::Class2}, 0)){(core::num) → core::int}){(core::num) → core::int});
let final self::Class2? #t42 = c2 in #t42 == null ?{core::int?} null : let final core::int #t43 = 0 in let final core::int #t44 = self::Extension|[](#t42{self::Class2}, #t43).{core::num::+}(1){(core::num) → core::int} in let final void #t45 = self::Extension|[]=(#t42{self::Class2}, #t43, #t44) in #t44;
let final self::Class2? #t46 = c2 in #t46 == null ?{core::int?} null : let final core::int #t47 = 0 in self::Extension|[]=(#t46{self::Class2}, #t47, self::Extension|[](#t46{self::Class2}, #t47).{core::num::+}(1){(core::num) → core::int});
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int?} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int?} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class1? #t52 = c1 in #t52 == null ?{core::int?} null : let final self::Class2? #t53 = #t52{self::Class1}.{self::Class1::field}{self::Class2?} in #t53 == null ?{core::int?} null : self::Extension|[](#t53{self::Class2}, 0);
let final self::Class1? #t54 = c1 in #t54 == null ?{core::int?} null : let final self::Class2? #t55 = #t54{self::Class1}.{self::Class1::field}{self::Class2?} in #t55 == null ?{core::int?} null : self::Extension|[]=(#t55{self::Class2}, 0, 1);
let final self::Class1? #t56 = c1 in #t56 == null ?{core::int?} null : let final self::Class2? #t57 = #t56{self::Class1}.{self::Class1::field}{self::Class2?} in #t57 == null ?{core::int?} null : self::Extension|[]=(#t57{self::Class2}, 0, 1.{core::num::+}(c1{self::Class1}.{self::Class1::[]}(0){(core::int) → core::int}){(core::num) → core::int});
@@ -73,6 +73,6 @@ static method main() → dynamic {
let final self::Class1? #t88 = c1 in #t88 == null ?{core::int?} null : let final self::Class2? #t89 = #t88{self::Class1}.{self::Class1::field}{self::Class2?} in #t89 == null ?{core::int?} null : let final core::int #t90 = 0 in self::Extension|[]=(#t89{self::Class2}, #t90, self::Extension|[](#t89{self::Class2}, #t90).{core::num::+}(1.{core::num::+}((let final self::Class2? #t91 = c2 in #t91 == null ?{core::int?} null : self::Extension|[](#t91{self::Class2}, 0)!) as core::int){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t92 = c1 in #t92 == null ?{core::int?} null : let final self::Class2? #t93 = #t92{self::Class1}.{self::Class1::field}{self::Class2?} in #t93 == null ?{core::int?} null : let final core::int #t94 = 0 in let final core::int #t95 = self::Extension|[](#t93{self::Class2}, #t94).{core::num::+}(1){(core::num) → core::int} in let final void #t96 = self::Extension|[]=(#t93{self::Class2}, #t94, #t95) in #t95;
let final self::Class1? #t97 = c1 in #t97 == null ?{core::int?} null : let final self::Class2? #t98 = #t97{self::Class1}.{self::Class1::field}{self::Class2?} in #t98 == null ?{core::int?} null : let final core::int #t99 = 0 in self::Extension|[]=(#t98{self::Class2}, #t99, self::Extension|[](#t98{self::Class2}, #t99).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as core::int){(core::num) → core::int}) : null;
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int?} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int?} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as core::int){(core::num) → core::int}) : null;
}
@@ -55,8 +55,8 @@ static method main() → dynamic {
let final self::Class2? #t40 = c2 in #t40 == null ?{core::int?} null : let final core::int #t41 = 0 in self::Extension|[]=(#t40{self::Class2}, #t41, self::Extension|[](#t40{self::Class2}, #t41).{core::num::+}(1.{core::num::+}(self::Extension|[](c2{self::Class2}, 0)){(core::num) → core::int}){(core::num) → core::int});
let final self::Class2? #t42 = c2 in #t42 == null ?{core::int?} null : let final core::int #t43 = 0 in let final core::int #t44 = self::Extension|[](#t42{self::Class2}, #t43).{core::num::+}(1){(core::num) → core::int} in let final void #t45 = self::Extension|[]=(#t42{self::Class2}, #t43, #t44) in #t44;
let final self::Class2? #t46 = c2 in #t46 == null ?{core::int?} null : let final core::int #t47 = 0 in self::Extension|[]=(#t46{self::Class2}, #t47, self::Extension|[](#t46{self::Class2}, #t47).{core::num::+}(1){(core::num) → core::int});
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class2? #t48 = c2 in #t48 == null ?{core::int?} null : let final core::int #t49 = 0 in self::Extension|[](#t48{self::Class2}, #t49) == null ?{core::int?} self::Extension|[]=(#t48{self::Class2}, #t49, 1) : null;
let final self::Class2? #t50 = c2 in #t50 == null ?{core::int?} null : let final core::int #t51 = 0 in self::Extension|[](#t50{self::Class2}, #t51) == null ?{core::int?} self::Extension|[]=(#t50{self::Class2}, #t51, 1.{core::num::+}(self::Extension|[](c2{self::Class2}, 1)){(core::num) → core::int}) : null;
let final self::Class1? #t52 = c1 in #t52 == null ?{core::int?} null : let final self::Class2? #t53 = #t52{self::Class1}.{self::Class1::field}{self::Class2?} in #t53 == null ?{core::int?} null : self::Extension|[](#t53{self::Class2}, 0);
let final self::Class1? #t54 = c1 in #t54 == null ?{core::int?} null : let final self::Class2? #t55 = #t54{self::Class1}.{self::Class1::field}{self::Class2?} in #t55 == null ?{core::int?} null : self::Extension|[]=(#t55{self::Class2}, 0, 1);
let final self::Class1? #t56 = c1 in #t56 == null ?{core::int?} null : let final self::Class2? #t57 = #t56{self::Class1}.{self::Class1::field}{self::Class2?} in #t57 == null ?{core::int?} null : self::Extension|[]=(#t57{self::Class2}, 0, 1.{core::num::+}(c1{self::Class1}.{self::Class1::[]}(0){(core::int) → core::int}){(core::num) → core::int});
@@ -73,8 +73,8 @@ static method main() → dynamic {
let final self::Class1? #t88 = c1 in #t88 == null ?{core::int?} null : let final self::Class2? #t89 = #t88{self::Class1}.{self::Class1::field}{self::Class2?} in #t89 == null ?{core::int?} null : let final core::int #t90 = 0 in self::Extension|[]=(#t89{self::Class2}, #t90, self::Extension|[](#t89{self::Class2}, #t90).{core::num::+}(1.{core::num::+}((let final self::Class2? #t91 = c2 in #t91 == null ?{core::int?} null : self::Extension|[](#t91{self::Class2}, 0)!) as{Unchecked} core::int){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t92 = c1 in #t92 == null ?{core::int?} null : let final self::Class2? #t93 = #t92{self::Class1}.{self::Class1::field}{self::Class2?} in #t93 == null ?{core::int?} null : let final core::int #t94 = 0 in let final core::int #t95 = self::Extension|[](#t93{self::Class2}, #t94).{core::num::+}(1){(core::num) → core::int} in let final void #t96 = self::Extension|[]=(#t93{self::Class2}, #t94, #t95) in #t95;
let final self::Class1? #t97 = c1 in #t97 == null ?{core::int?} null : let final self::Class2? #t98 = #t97{self::Class1}.{self::Class1::field}{self::Class2?} in #t98 == null ?{core::int?} null : let final core::int #t99 = 0 in self::Extension|[]=(#t98{self::Class2}, #t99, self::Extension|[](#t98{self::Class2}, #t99).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as{Unchecked} core::int){(core::num) → core::int}) : null;
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int?} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int?} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as{Unchecked} core::int){(core::num) → core::int}) : null;
}
@@ -76,8 +76,8 @@ class Class extends core::Object {
late final self::Class self;
if(self::b)
self = this;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class} self::Extension|[]=(#t56, #t57, self) : null;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class?} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class?} self::Extension|[]=(#t56, #t57, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
@@ -108,8 +108,8 @@ class Subclass extends self::Class {
late final self::Class self;
if(self::b)
self = this;
super.{self::Class::[]}(this) == null ?{self::Class} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]}(this) == null ?{self::Class?} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class?} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]=}(this, this);
super.{self::Class::[]=}(self, self);
super.{self::Class::[]}(this);
@@ -169,8 +169,8 @@ class Class2 extends core::Object {
late final self::Class2 self;
if(self::b)
self = this;
self::Extension2|[](this, this) == null ?{self::Class2} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2?} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
@@ -76,8 +76,8 @@ class Class extends core::Object {
late final self::Class self;
if(self::b)
self = this;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class} self::Extension|[]=(#t56, #t57, self) : null;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class?} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class?} self::Extension|[]=(#t56, #t57, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
@@ -108,8 +108,8 @@ class Subclass extends self::Class {
late final self::Class self;
if(self::b)
self = this;
super.{self::Class::[]}(this) == null ?{self::Class} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]}(this) == null ?{self::Class?} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class?} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]=}(this, this);
super.{self::Class::[]=}(self, self);
super.{self::Class::[]}(this);
@@ -169,8 +169,8 @@ class Class2 extends core::Object {
late final self::Class2 self;
if(self::b)
self = this;
self::Extension2|[](this, this) == null ?{self::Class2} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2?} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
@@ -76,8 +76,8 @@ class Class extends core::Object {
late final self::Class self;
if(self::b)
self = this;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class} self::Extension|[]=(#t56, #t57, self) : null;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class?} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class?} self::Extension|[]=(#t56, #t57, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
@@ -108,8 +108,8 @@ class Subclass extends self::Class {
late final self::Class self;
if(self::b)
self = this;
super.{self::Class::[]}(this) == null ?{self::Class} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]}(this) == null ?{self::Class?} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class?} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]=}(this, this);
super.{self::Class::[]=}(self, self);
super.{self::Class::[]}(this);
@@ -169,8 +169,8 @@ class Class2 extends core::Object {
late final self::Class2 self;
if(self::b)
self = this;
self::Extension2|[](this, this) == null ?{self::Class2} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2?} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
@@ -76,8 +76,8 @@ class Class extends core::Object {
late final self::Class self;
if(self::b)
self = this;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class} self::Extension|[]=(#t56, #t57, self) : null;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class?} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class?} self::Extension|[]=(#t56, #t57, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
@@ -108,8 +108,8 @@ class Subclass extends self::Class {
late final self::Class self;
if(self::b)
self = this;
super.{self::Class::[]}(this) == null ?{self::Class} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]}(this) == null ?{self::Class?} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class?} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]=}(this, this);
super.{self::Class::[]=}(self, self);
super.{self::Class::[]}(this);
@@ -169,8 +169,8 @@ class Class2 extends core::Object {
late final self::Class2 self;
if(self::b)
self = this;
self::Extension2|[](this, this) == null ?{self::Class2} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2?} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
@@ -76,8 +76,8 @@ class Class extends core::Object {
late final self::Class self;
if(self::b)
self = this;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class} self::Extension|[]=(#t56, #t57, self) : null;
let final core::int #t55 = i in self::Extension|[](#t55, this) == null ?{self::Class?} self::Extension|[]=(#t55, this, this) : null;
let final core::int #t56 = i in let final self::Class #t57 = self in self::Extension|[](#t56, #t57) == null ?{self::Class?} self::Extension|[]=(#t56, #t57, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
@@ -108,8 +108,8 @@ class Subclass extends self::Class {
late final self::Class self;
if(self::b)
self = this;
super.{self::Class::[]}(this) == null ?{self::Class} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]}(this) == null ?{self::Class?} super.{self::Class::[]=}(this, this) : null;
let final self::Class #t81 = self in super.{self::Class::[]}(#t81) == null ?{self::Class?} super.{self::Class::[]=}(#t81, self) : null;
super.{self::Class::[]=}(this, this);
super.{self::Class::[]=}(self, self);
super.{self::Class::[]}(this);
@@ -169,8 +169,8 @@ class Class2 extends core::Object {
late final self::Class2 self;
if(self::b)
self = this;
self::Extension2|[](this, this) == null ?{self::Class2} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
let final self::Class2 #t120 = self in let final self::Class2 #t121 = self in self::Extension2|[](#t120, #t121) == null ?{self::Class2?} self::Extension2|[]=(#t120, #t121, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
@@ -16,7 +16,7 @@ class B extends self::A {
: super self::A::•()
;
method test() → void {
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String} super.{self::A::[]=}(#t1, "bar") : null;
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "bar") : null;
}
}
extension E on core::String {
@@ -70,16 +70,16 @@ static method warning(core::String s, core::List<core::String> l, core::Map<core
let final core::String #t15 = s in #t15 == null ?{core::String?} null : #t15.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
let final core::List<core::String> #t16 = l in #t16 == null ?{core::int?} null : #t16.{core::List::length} = 42;
let final core::List<core::String> #t17 = l in #t17 == null ?{core::int?} null : #t17.{core::List::length} = #t17.{core::List::length}{core::int}.{core::num::+}(42){(core::num) → core::int};
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int} #t18.{core::List::length} = 42 : null;
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int?} #t18.{core::List::length} = 42 : null;
let final core::String #t19 = s in #t19 == null ?{core::int?} null : self::E|get#foo(#t19);
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int} self::E|[]=(#t20, #t21, 42) : null;
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int?} self::E|[]=(#t20, #t21, 42) : null;
let final core::List<core::String> #t22 = l in let final core::int #t23 = 42 in #t22.{core::List::[]}(#t23){(core::int) → core::String} == null ?{core::String?} #t22.{core::List::[]=}(#t23, "foo"){(core::int, core::String) → void} : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int?} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t25 = l in #t25 == null ?{core::List<core::String>} null : block {
#t25.{core::List::length} = 42;
} =>#t25;
let final core::List<core::String> #t26 = l in #t26 == null ?{core::List<core::String>} null : block {
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int} #t27.{core::List::length} = 42 : null;
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int?} #t27.{core::List::length} = 42 : null;
} =>#t26;
}
static method main() → dynamic {}
@@ -16,7 +16,7 @@ class B extends self::A {
: super self::A::•()
;
method test() → void {
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String} super.{self::A::[]=}(#t1, "bar") : null;
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "bar") : null;
}
}
extension E on core::String {
@@ -70,16 +70,16 @@ static method warning(core::String s, core::List<core::String> l, core::Map<core
let final core::String #t15 = s in #t15 == null ?{core::String?} null : #t15.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
let final core::List<core::String> #t16 = l in #t16 == null ?{core::int?} null : #t16.{core::List::length} = 42;
let final core::List<core::String> #t17 = l in #t17 == null ?{core::int?} null : #t17.{core::List::length} = #t17.{core::List::length}{core::int}.{core::num::+}(42){(core::num) → core::int};
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int} #t18.{core::List::length} = 42 : null;
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int?} #t18.{core::List::length} = 42 : null;
let final core::String #t19 = s in #t19 == null ?{core::int?} null : self::E|get#foo(#t19);
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int} self::E|[]=(#t20, #t21, 42) : null;
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int?} self::E|[]=(#t20, #t21, 42) : null;
let final core::List<core::String> #t22 = l in let final core::int #t23 = 42 in #t22.{core::List::[]}(#t23){(core::int) → core::String} == null ?{core::String?} #t22.{core::List::[]=}(#t23, "foo"){(core::int, core::String) → void} : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int?} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t25 = l in #t25 == null ?{core::List<core::String>} null : block {
#t25.{core::List::length} = 42;
} =>#t25;
let final core::List<core::String> #t26 = l in #t26 == null ?{core::List<core::String>} null : block {
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int} #t27.{core::List::length} = 42 : null;
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int?} #t27.{core::List::length} = 42 : null;
} =>#t26;
}
static method main() → dynamic {}
@@ -16,7 +16,7 @@ class B extends self::A {
: super self::A::•()
;
method test() → void {
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String} super.{self::A::[]=}(#t1, "bar") : null;
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "bar") : null;
}
}
extension E on core::String {
@@ -70,16 +70,16 @@ static method warning(core::String s, core::List<core::String> l, core::Map<core
let final core::String #t15 = s in #t15 == null ?{core::String?} null : #t15.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
let final core::List<core::String> #t16 = l in #t16 == null ?{core::int?} null : #t16.{core::List::length} = 42;
let final core::List<core::String> #t17 = l in #t17 == null ?{core::int?} null : #t17.{core::List::length} = #t17.{core::List::length}{core::int}.{core::num::+}(42){(core::num) → core::int};
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int} #t18.{core::List::length} = 42 : null;
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int?} #t18.{core::List::length} = 42 : null;
let final core::String #t19 = s in #t19 == null ?{core::int?} null : self::E|get#foo(#t19);
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int} self::E|[]=(#t20, #t21, 42) : null;
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int?} self::E|[]=(#t20, #t21, 42) : null;
let final core::List<core::String> #t22 = l in let final core::int #t23 = 42 in #t22.{core::List::[]}(#t23){(core::int) → core::String} == null ?{core::String?} #t22.{core::List::[]=}(#t23, "foo"){(core::int, core::String) → void} : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int?} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t25 = l in #t25 == null ?{core::List<core::String>} null : block {
#t25.{core::List::length} = 42;
} =>#t25;
let final core::List<core::String> #t26 = l in #t26 == null ?{core::List<core::String>} null : block {
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int} #t27.{core::List::length} = 42 : null;
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int?} #t27.{core::List::length} = 42 : null;
} =>#t26;
}
static method main() → dynamic {}
@@ -16,7 +16,7 @@ class B extends self::A {
: super self::A::•()
;
method test() → void {
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String} super.{self::A::[]=}(#t1, "bar") : null;
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "bar") : null;
}
}
extension E on core::String {
@@ -70,16 +70,16 @@ static method warning(core::String s, core::List<core::String> l, core::Map<core
let final core::String #t15 = s in #t15 == null ?{core::String?} null : #t15.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
let final core::List<core::String> #t16 = l in #t16 == null ?{core::int?} null : #t16.{core::List::length} = 42;
let final core::List<core::String> #t17 = l in #t17 == null ?{core::int?} null : #t17.{core::List::length} = #t17.{core::List::length}{core::int}.{core::num::+}(42){(core::num) → core::int};
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int} #t18.{core::List::length} = 42 : null;
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int?} #t18.{core::List::length} = 42 : null;
let final core::String #t19 = s in #t19 == null ?{core::int?} null : self::E|get#foo(#t19);
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int} self::E|[]=(#t20, #t21, 42) : null;
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int?} self::E|[]=(#t20, #t21, 42) : null;
let final core::List<core::String> #t22 = l in let final core::int #t23 = 42 in #t22.{core::List::[]}(#t23){(core::int) → core::String} == null ?{core::String?} #t22.{core::List::[]=}(#t23, "foo"){(core::int, core::String) → void} : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int?} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t25 = l in #t25 == null ?{core::List<core::String>} null : block {
#t25.{core::List::length} = 42;
} =>#t25;
let final core::List<core::String> #t26 = l in #t26 == null ?{core::List<core::String>} null : block {
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int} #t27.{core::List::length} = 42 : null;
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int?} #t27.{core::List::length} = 42 : null;
} =>#t26;
}
static method main() → dynamic {}
@@ -16,7 +16,7 @@ class B extends self::A {
: super self::A::•()
;
method test() → void {
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String} super.{self::A::[]=}(#t1, "bar") : null;
let final core::int #t1 = 42 in super.{self::A::[]}(#t1) == null ?{core::String?} super.{self::A::[]=}(#t1, "bar") : null;
}
}
extension E on core::String {
@@ -70,16 +70,16 @@ static method warning(core::String s, core::List<core::String> l, core::Map<core
let final core::String #t15 = s in #t15 == null ?{core::String?} null : #t15.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
let final core::List<core::String> #t16 = l in #t16 == null ?{core::int?} null : #t16.{core::List::length} = 42;
let final core::List<core::String> #t17 = l in #t17 == null ?{core::int?} null : #t17.{core::List::length} = #t17.{core::List::length}{core::int}.{core::num::+}(42){(core::num) → core::int};
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int} #t18.{core::List::length} = 42 : null;
let final core::List<core::String> #t18 = l in #t18 == null ?{core::int?} null : #t18.{core::List::length}{core::int} == null ?{core::int?} #t18.{core::List::length} = 42 : null;
let final core::String #t19 = s in #t19 == null ?{core::int?} null : self::E|get#foo(#t19);
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int} self::E|[]=(#t20, #t21, 42) : null;
let final core::String #t20 = s in let final core::int #t21 = 42 in self::E|[](#t20, #t21) == null ?{core::int?} self::E|[]=(#t20, #t21, 42) : null;
let final core::List<core::String> #t22 = l in let final core::int #t23 = 42 in #t22.{core::List::[]}(#t23){(core::int) → core::String} == null ?{core::String?} #t22.{core::List::[]=}(#t23, "foo"){(core::int, core::String) → void} : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t24 = l in #t24.{core::List::length}{core::int} == null ?{core::int?} #t24.{core::List::length} = 42 : null;
let final core::List<core::String> #t25 = l in #t25 == null ?{core::List<core::String>} null : block {
#t25.{core::List::length} = 42;
} =>#t25;
let final core::List<core::String> #t26 = l in #t26 == null ?{core::List<core::String>} null : block {
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int} #t27.{core::List::length} = 42 : null;
let final core::List<core::String> #t27 = #t26 in #t27.{core::List::length}{core::int} == null ?{core::int?} #t27.{core::List::length} = 42 : null;
} =>#t26;
}
static method main() → dynamic {}
@@ -335,7 +335,7 @@ class OptInClass4 extends uns::OptInSuperClass4 {
method method(core::int i) → dynamic
return let final core::int #t35 = i in let final core::int #t36 = super.{uns::OptInSuperClass4::[]}(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 42 in let final void #t38 = super.{uns::OptInSuperClass4::[]=}(#t35, #t37) in #t37 : #t36;
method methodForEffect(core::int i) → dynamic {
let final core::int #t39 = i in super.{uns::OptInSuperClass4::[]}(#t39) == null ?{core::int} super.{uns::OptInSuperClass4::[]=}(#t39, 42) : null;
let final core::int #t39 = i in super.{uns::OptInSuperClass4::[]}(#t39) == null ?{core::int?} super.{uns::OptInSuperClass4::[]=}(#t39, 42) : null;
}
}
class OptInClass5 extends core::Object {
@@ -386,7 +386,7 @@ static extension-member method OptInExtension|[]=(lowered final uns::OptInClass1
static method extensionIfNullOptIn1(core::int i) → dynamic
return let final uns::OptInClass1 #t41 = new uns::OptInClass1::•() in let final core::int #t42 = i in let final core::int #t43 = uns::OptInExtension|[](#t41, #t42) in #t43 == null ?{core::int} let final core::int #t44 = 42 in let final void #t45 = uns::OptInExtension|[]=(#t41, #t42, #t44) in #t44 : #t43;
static method extensionIfNullOptIn1ForEffect(core::int i) → dynamic {
let final uns::OptInClass1 #t46 = new uns::OptInClass1::•() in let final core::int #t47 = i in uns::OptInExtension|[](#t46, #t47) == null ?{core::int} uns::OptInExtension|[]=(#t46, #t47, 42) : null;
let final uns::OptInClass1 #t46 = new uns::OptInClass1::•() in let final core::int #t47 = i in uns::OptInExtension|[](#t46, #t47) == null ?{core::int?} uns::OptInExtension|[]=(#t46, #t47, 42) : null;
}
static method extensionIfNullOptIn2(core::int i) → dynamic
return let final uns::OptInClass1 #t48 = new uns::OptInClass1::•() in let final core::int #t49 = i in let final core::int #t50 = uns::OptInExtension|[](#t48, #t49) in #t50 == null ?{core::int} let final core::int #t51 = 42 in let final void #t52 = uns::OptInExtension|[]=(#t48, #t49, #t51) in #t51 : #t50;
@@ -401,7 +401,7 @@ static method ifNullIndexSetOptInForEffect(core::int i) → dynamic {
static method ifNullPropertySetOptIn(core::int i) → dynamic
return let final uns::OptInClass3 #t62 = new uns::OptInClass3::•(i) in let final core::int #t63 = #t62.{uns::OptInClass3::field}{core::int} in #t63 == null ?{core::int} #t62.{uns::OptInClass3::field} = 42 : #t63;
static method ifNullPropertySetOptInForEffect(core::int i) → dynamic {
let final uns::OptInClass3 #t64 = new uns::OptInClass3::•(i) in #t64.{uns::OptInClass3::field}{core::int} == null ?{core::int} #t64.{uns::OptInClass3::field} = 42 : null;
let final uns::OptInClass3 #t64 = new uns::OptInClass3::•(i) in #t64.{uns::OptInClass3::field}{core::int} == null ?{core::int?} #t64.{uns::OptInClass3::field} = 42 : null;
}
static method ifNullSetOptIn(core::int i) → dynamic
return let final core::int #t65 = i in #t65 == null ?{core::int} i = 42 : #t65;
@@ -419,7 +419,7 @@ static method nullAwareIfNullSetOptIn(core::int i) → dynamic {
}
static method nullAwareIfNullSetOptInForEffect(core::int i) → dynamic {
uns::OptInClass5? o = new uns::OptInClass5::•(i) as uns::OptInClass5?;
let final uns::OptInClass5? #t68 = o in #t68 == null ?{core::int?} null : #t68.{uns::OptInClass5::field}{core::int} == null ?{core::int} #t68.{uns::OptInClass5::field} = 42 : null;
let final uns::OptInClass5? #t68 = o in #t68 == null ?{core::int?} null : #t68.{uns::OptInClass5::field}{core::int} == null ?{core::int?} #t68.{uns::OptInClass5::field} = 42 : null;
}
static method isTestOptIn(core::int i) → dynamic
return i is core::int;
@@ -335,7 +335,7 @@ class OptInClass4 extends uns::OptInSuperClass4 {
method method(core::int i) → dynamic
return let final core::int #t35 = i in let final core::int #t36 = super.{uns::OptInSuperClass4::[]}(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 42 in let final void #t38 = super.{uns::OptInSuperClass4::[]=}(#t35, #t37) in #t37 : #t36;
method methodForEffect(core::int i) → dynamic {
let final core::int #t39 = i in super.{uns::OptInSuperClass4::[]}(#t39) == null ?{core::int} super.{uns::OptInSuperClass4::[]=}(#t39, 42) : null;
let final core::int #t39 = i in super.{uns::OptInSuperClass4::[]}(#t39) == null ?{core::int?} super.{uns::OptInSuperClass4::[]=}(#t39, 42) : null;
}
}
class OptInClass5 extends core::Object {
@@ -386,7 +386,7 @@ static extension-member method OptInExtension|[]=(lowered final uns::OptInClass1
static method extensionIfNullOptIn1(core::int i) → dynamic
return let final uns::OptInClass1 #t41 = new uns::OptInClass1::•() in let final core::int #t42 = i in let final core::int #t43 = uns::OptInExtension|[](#t41, #t42) in #t43 == null ?{core::int} let final core::int #t44 = 42 in let final void #t45 = uns::OptInExtension|[]=(#t41, #t42, #t44) in #t44 : #t43;
static method extensionIfNullOptIn1ForEffect(core::int i) → dynamic {
let final uns::OptInClass1 #t46 = new uns::OptInClass1::•() in let final core::int #t47 = i in uns::OptInExtension|[](#t46, #t47) == null ?{core::int} uns::OptInExtension|[]=(#t46, #t47, 42) : null;
let final uns::OptInClass1 #t46 = new uns::OptInClass1::•() in let final core::int #t47 = i in uns::OptInExtension|[](#t46, #t47) == null ?{core::int?} uns::OptInExtension|[]=(#t46, #t47, 42) : null;
}
static method extensionIfNullOptIn2(core::int i) → dynamic
return let final uns::OptInClass1 #t48 = new uns::OptInClass1::•() in let final core::int #t49 = i in let final core::int #t50 = uns::OptInExtension|[](#t48, #t49) in #t50 == null ?{core::int} let final core::int #t51 = 42 in let final void #t52 = uns::OptInExtension|[]=(#t48, #t49, #t51) in #t51 : #t50;
@@ -401,7 +401,7 @@ static method ifNullIndexSetOptInForEffect(core::int i) → dynamic {
static method ifNullPropertySetOptIn(core::int i) → dynamic
return let final uns::OptInClass3 #t62 = new uns::OptInClass3::•(i) in let final core::int #t63 = #t62.{uns::OptInClass3::field}{core::int} in #t63 == null ?{core::int} #t62.{uns::OptInClass3::field} = 42 : #t63;
static method ifNullPropertySetOptInForEffect(core::int i) → dynamic {
let final uns::OptInClass3 #t64 = new uns::OptInClass3::•(i) in #t64.{uns::OptInClass3::field}{core::int} == null ?{core::int} #t64.{uns::OptInClass3::field} = 42 : null;
let final uns::OptInClass3 #t64 = new uns::OptInClass3::•(i) in #t64.{uns::OptInClass3::field}{core::int} == null ?{core::int?} #t64.{uns::OptInClass3::field} = 42 : null;
}
static method ifNullSetOptIn(core::int i) → dynamic
return let final core::int #t65 = i in #t65 == null ?{core::int} i = 42 : #t65;
@@ -419,7 +419,7 @@ static method nullAwareIfNullSetOptIn(core::int i) → dynamic {
}
static method nullAwareIfNullSetOptInForEffect(core::int i) → dynamic {
uns::OptInClass5? o = new uns::OptInClass5::•(i) as uns::OptInClass5?;
let final uns::OptInClass5? #t68 = o in #t68 == null ?{core::int?} null : #t68.{uns::OptInClass5::field}{core::int} == null ?{core::int} #t68.{uns::OptInClass5::field} = 42 : null;
let final uns::OptInClass5? #t68 = o in #t68 == null ?{core::int?} null : #t68.{uns::OptInClass5::field}{core::int} == null ?{core::int?} #t68.{uns::OptInClass5::field} = 42 : null;
}
static method isTestOptIn(core::int i) → dynamic
return i is core::int;
@@ -335,7 +335,7 @@ class OptInClass4 extends uns::OptInSuperClass4 {
method method(core::int i) → dynamic
return let final core::int #t35 = i in let final core::int #t36 = super.{uns::OptInSuperClass4::[]}(#t35) in #t36 == null ?{core::int} let final core::int #t37 = 42 in let final void #t38 = super.{uns::OptInSuperClass4::[]=}(#t35, #t37) in #t37 : #t36;
method methodForEffect(core::int i) → dynamic {
let final core::int #t39 = i in super.{uns::OptInSuperClass4::[]}(#t39) == null ?{core::int} super.{uns::OptInSuperClass4::[]=}(#t39, 42) : null;
let final core::int #t39 = i in super.{uns::OptInSuperClass4::[]}(#t39) == null ?{core::int?} super.{uns::OptInSuperClass4::[]=}(#t39, 42) : null;
}
}
class OptInClass5 extends core::Object {
@@ -386,7 +386,7 @@ static extension-member method OptInExtension|[]=(lowered final uns::OptInClass1
static method extensionIfNullOptIn1(core::int i) → dynamic
return let final uns::OptInClass1 #t41 = new uns::OptInClass1::•() in let final core::int #t42 = i in let final core::int #t43 = uns::OptInExtension|[](#t41, #t42) in #t43 == null ?{core::int} let final core::int #t44 = 42 in let final void #t45 = uns::OptInExtension|[]=(#t41, #t42, #t44) in #t44 : #t43;
static method extensionIfNullOptIn1ForEffect(core::int i) → dynamic {
let final uns::OptInClass1 #t46 = new uns::OptInClass1::•() in let final core::int #t47 = i in uns::OptInExtension|[](#t46, #t47) == null ?{core::int} uns::OptInExtension|[]=(#t46, #t47, 42) : null;
let final uns::OptInClass1 #t46 = new uns::OptInClass1::•() in let final core::int #t47 = i in uns::OptInExtension|[](#t46, #t47) == null ?{core::int?} uns::OptInExtension|[]=(#t46, #t47, 42) : null;
}
static method extensionIfNullOptIn2(core::int i) → dynamic
return let final uns::OptInClass1 #t48 = new uns::OptInClass1::•() in let final core::int #t49 = i in let final core::int #t50 = uns::OptInExtension|[](#t48, #t49) in #t50 == null ?{core::int} let final core::int #t51 = 42 in let final void #t52 = uns::OptInExtension|[]=(#t48, #t49, #t51) in #t51 : #t50;
@@ -401,7 +401,7 @@ static method ifNullIndexSetOptInForEffect(core::int i) → dynamic {
static method ifNullPropertySetOptIn(core::int i) → dynamic
return let final uns::OptInClass3 #t62 = new uns::OptInClass3::•(i) in let final core::int #t63 = #t62.{uns::OptInClass3::field}{core::int} in #t63 == null ?{core::int} #t62.{uns::OptInClass3::field} = 42 : #t63;
static method ifNullPropertySetOptInForEffect(core::int i) → dynamic {
let final uns::OptInClass3 #t64 = new uns::OptInClass3::•(i) in #t64.{uns::OptInClass3::field}{core::int} == null ?{core::int} #t64.{uns::OptInClass3::field} = 42 : null;
let final uns::OptInClass3 #t64 = new uns::OptInClass3::•(i) in #t64.{uns::OptInClass3::field}{core::int} == null ?{core::int?} #t64.{uns::OptInClass3::field} = 42 : null;
}
static method ifNullSetOptIn(core::int i) → dynamic
return let final core::int #t65 = i in #t65 == null ?{core::int} i = 42 : #t65;
@@ -419,7 +419,7 @@ static method nullAwareIfNullSetOptIn(core::int i) → dynamic {
}
static method nullAwareIfNullSetOptInForEffect(core::int i) → dynamic {
uns::OptInClass5? o = new uns::OptInClass5::•(i) as{Unchecked} uns::OptInClass5?;
let final uns::OptInClass5? #t68 = o in #t68 == null ?{core::int?} null : #t68.{uns::OptInClass5::field}{core::int} == null ?{core::int} #t68.{uns::OptInClass5::field} = 42 : null;
let final uns::OptInClass5? #t68 = o in #t68 == null ?{core::int?} null : #t68.{uns::OptInClass5::field}{core::int} == null ?{core::int?} #t68.{uns::OptInClass5::field} = 42 : null;
}
static method isTestOptIn(core::int i) → dynamic
return i is core::int;
@@ -53,7 +53,7 @@ static method test(self::C<core::num> c) → void {
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>?} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>? : null;
@@ -53,7 +53,7 @@ static method test(self::C<core::num> c) → void {
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>?} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>? : null;
@@ -53,7 +53,7 @@ static method test(self::C<core::num> c) → void {
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>?} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>? : null;
@@ -53,7 +53,7 @@ static method test(self::C<core::num> c) → void {
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>?} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>? : null;
@@ -53,7 +53,7 @@ static method test(self::C<core::num> c) → void {
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck} self::B<(core::num) → void>? == null ?{self::B<core::Object>?} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
- 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
^" in new self::B::•<core::num>() as{TypeError} self::B<(core::num) → void>? : null;