blob: 595c5b9caf00491a4e9579d999c575f20a3efd4f [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
// - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
// Try accessing using ?. instead.
// throws(() => (n1?.nullable1 = new Class1()).nullable1);
// ^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:94:43: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
// - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
// Try accessing using ?. instead.
// throws(() => (n1?.nonNullable1Method()).nullable1);
// ^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
// - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
// throws(() => n1?.nonNullable1 + 0);
// ^
//
// pkg/front_end/testcases/nnbd/null_shorting_extension.dart:227:16: Error: Operator 'unary-' cannot be called on 'Class1?' because it is potentially null.
// - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
// throws(() => -n1?.nonNullable1);
// ^
//
import self as self;
import "dart:core" as core;
class Class1 extends core::Object {
synthetic constructor •() → self::Class1
: super core::Object::•()
;
get property() → self::Class1?
return null;
set property(self::Class1? value) → void {}
get property1() → self::Class1
return new self::Class1::•();
get property2() → self::Class2
return new self::Class2::•();
}
class Class2 extends core::Object {
synthetic constructor •() → self::Class2
: super core::Object::•()
;
get property() → self::Class2
return this;
set property(self::Class2 value) → void {}
}
class Class3 extends core::Object {
synthetic constructor •() → self::Class3
: super core::Object::•()
;
get property() → self::Class2?
return null;
}
extension Extension1 on self::Class1 {
get nullable1 = self::Extension1|get#nullable1;
method nonNullable1Method = self::Extension1|nonNullable1Method;
tearoff nonNullable1Method = self::Extension1|get#nonNullable1Method;
operator [] = self::Extension1|[];
operator []= = self::Extension1|[]=;
operator + = self::Extension1|+;
operator unary- = self::Extension1|unary-;
get nonNullable1 = self::Extension1|get#nonNullable1;
get nonNullable2 = self::Extension1|get#nonNullable2;
set nullable1 = self::Extension1|set#nullable1;
}
extension Extension2 on self::Class2 {
method nonNullable2Method = self::Extension2|nonNullable2Method;
tearoff nonNullable2Method = self::Extension2|get#nonNullable2Method;
operator [] = self::Extension2|[];
operator []= = self::Extension2|[]=;
operator + = self::Extension2|+;
operator unary- = self::Extension2|unary-;
get nonNullable2 = self::Extension2|get#nonNullable2;
set nonNullable2 = self::Extension2|set#nonNullable2;
}
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
static method Extension1|unary-(final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
static method Extension2|unary-(final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
self::indexAccess(null, null, null);
self::operatorAccess(null, null);
self::ifNull(null);
}
static method propertyAccess(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t1 = n1 in #t1.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(#t1{self::Class1});
let final self::Class1? #t2 = n1 in #t2.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t2{self::Class1}, new self::Class1::•());
nullable1 = let final self::Class1? #t3 = n1 in #t3.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t4 = new self::Class1::•() in let final void #t5 = self::Extension1|set#nullable1(#t3{self::Class1}, #t4) in #t4;
let final self::Class1? #t6 = n1 in #t6.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t6{self::Class1});
let final self::Class1? #t7 = n1 in #t7.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t7{self::Class1}));
let final self::Class1? #t8 = n1 in #t8.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t9 = self::Extension1|get#nullable1(#t8{self::Class1}) in #t9.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(#t9{self::Class1});
let final self::Class1? #t10 = n1 in #t10.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t11 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t10{self::Class1})) in #t11.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(#t11{self::Class1});
let final self::Class1? #t12 = n1 in #t12.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t12{self::Class1}), new self::Class1::•());
let final self::Class1? #t13 = n1 in #t13.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t14 = self::Extension1|get#nullable1(#t13{self::Class1}) in #t14.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t14{self::Class1}, new self::Class1::•());
let final self::Class1? #t15 = n1 in #t15.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t16 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t15{self::Class1})) in #t16.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t16{self::Class1}, new self::Class1::•());
let final self::Class1? #t17 = let final self::Class1? #t18 = n1 in #t18.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(#t18{self::Class1}) in #t17.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(#t17{self::Class1});
self::throws(() → void => let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:93:47: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
- 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
Try accessing using ?. instead.
throws(() => (n1?.nullable1 = new Class1()).nullable1);
^^^^^^^^^" in self::Extension1|get#nullable1(let final self::Class1? #t20 = n1 in #t20.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t21 = new self::Class1::•() in let final void #t22 = self::Extension1|set#nullable1(#t20{self::Class1}, #t21) in #t21));
self::throws(() → void => let final<BottomType> #t23 = invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:94:43: Error: Property 'nullable1' cannot be accessed on 'Class1?' because it is potentially null.
- 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
Try accessing using ?. instead.
throws(() => (n1?.nonNullable1Method()).nullable1);
^^^^^^^^^" in self::Extension1|get#nullable1(let final self::Class1? #t24 = n1 in #t24.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t24{self::Class1})));
nullable1 = let final self::Class1? #t25 = n1 in #t25.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t26 = new self::Class1::•() in let final void #t27 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t25{self::Class1}), #t26) in #t26;
nullable1 = let final self::Class1? #t28 = n1 in #t28.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t29 = self::Extension1|get#nullable1(#t28{self::Class1}) in #t29.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t30 = new self::Class1::•() in let final void #t31 = self::Extension1|set#nullable1(#t29{self::Class1}, #t30) in #t30;
nullable1 = let final self::Class1? #t32 = n1 in #t32.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t33 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t32{self::Class1})) in #t33.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t34 = new self::Class1::•() in let final void #t35 = self::Extension1|set#nullable1(#t33{self::Class1}, #t34) in #t34;
let final self::Class1? #t36 = n1 in #t36.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t37 = self::Extension1|get#nullable1(#t36{self::Class1}) in #t37.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t37{self::Class1});
let final self::Class1? #t38 = n1 in #t38.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t38{self::Class1}, self::Extension1|get#nullable1(new self::Class1::•()));
nullable1 = let final self::Class1? #t39 = n1 in #t39.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t40 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t41 = self::Extension1|set#nullable1(#t39{self::Class1}, #t40) in #t40;
let final self::Class1? #t42 = n1 in #t42.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t42{self::Class1}, let final self::Class1 #t43 = new self::Class1::•() in let final void #t44 = self::Extension1|set#nullable1(new self::Class1::•(), #t43) in #t43);
nullable1 = let final self::Class1? #t45 = n1 in #t45.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t46 = let final self::Class1 #t47 = new self::Class1::•() in let final void #t48 = self::Extension1|set#nullable1(new self::Class1::•(), #t47) in #t47 in let final void #t49 = self::Extension1|set#nullable1(#t45{self::Class1}, #t46) in #t46;
let final self::Class1? #t50 = n1 in #t50.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t50{self::Class1}, self::Extension1|nonNullable1Method(new self::Class1::•()));
nullable1 = let final self::Class1? #t51 = n1 in #t51.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t52 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t53 = self::Extension1|set#nullable1(#t51{self::Class1}, #t52) in #t52;
let final self::Class1? #t54 = n1 in #t54.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(#t54{self::Class1}));
let final self::Class1? #t55 = n1 in #t55.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t55{self::Class1}), new self::Class1::•());
let final self::Class1? #t56 = n1 in #t56.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t56{self::Class1}));
let final self::Class1? #t57 = n1 in #t57.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t57{self::Class1})));
let final self::Class1? #t58 = n1 in #t58.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t58{self::Class1})), new self::Class1::•());
nullable1 = let final self::Class1? #t59 = n1 in #t59.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t60 = new self::Class1::•() in let final void #t61 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|get#nonNullable1(#t59{self::Class1})), #t60) in #t60;
let final self::Class1? #t62 = n1 in #t62.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t63 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(#t62{self::Class1})) in #t63.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t63{self::Class1});
let final self::Class1? #t64 = n1 in #t64.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t64{self::Class1}, self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())));
nullable1 = let final self::Class1? #t65 = n1 in #t65.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t66 = self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t67 = self::Extension1|set#nullable1(#t65{self::Class1}, #t66) in #t66;
let final self::Class1? #t68 = n1 in #t68.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t68{self::Class1}, let final self::Class1 #t69 = new self::Class1::•() in let final void #t70 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t69) in #t69);
nullable1 = let final self::Class1? #t71 = n1 in #t71.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t72 = let final self::Class1 #t73 = new self::Class1::•() in let final void #t74 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(new self::Class1::•()), #t73) in #t73 in let final void #t75 = self::Extension1|set#nullable1(#t71{self::Class1}, #t72) in #t72;
let final self::Class1? #t76 = n1 in #t76.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t76{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())));
nullable1 = let final self::Class1? #t77 = n1 in #t77.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t78 = self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(new self::Class1::•())) in let final void #t79 = self::Extension1|set#nullable1(#t77{self::Class1}, #t78) in #t78;
let final self::Class1? #t80 = n1 in #t80.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t80{self::Class1})));
let final self::Class1? #t81 = n1 in #t81.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t81{self::Class1})), new self::Class1::•());
let final self::Class1? #t82 = n1 in #t82.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(self::Extension1|nonNullable1Method(#t82{self::Class1})));
let final self::Class1? #t83 = n1 in #t83.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t83{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
nullable1 = let final self::Class1? #t84 = n1 in #t84.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t85 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t86 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t84{self::Class1}), #t85) in #t85;
let final self::Class1? #t87 = n1 in #t87.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t87{self::Class1}), let final self::Class1 #t88 = new self::Class1::•() in let final void #t89 = self::Extension1|set#nullable1(new self::Class1::•(), #t88) in #t88);
nullable1 = let final self::Class1? #t90 = n1 in #t90.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t91 = let final self::Class1 #t92 = new self::Class1::•() in let final void #t93 = self::Extension1|set#nullable1(new self::Class1::•(), #t92) in #t92 in let final void #t94 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t90{self::Class1}), #t91) in #t91;
let final self::Class1? #t95 = n1 in #t95.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t95{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
nullable1 = let final self::Class1? #t96 = n1 in #t96.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t97 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t98 = self::Extension1|set#nullable1(self::Extension1|get#nonNullable1(#t96{self::Class1}), #t97) in #t97;
let final self::Class1? #t99 = n1 in #t99.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t99{self::Class1}, let final self::Class1? #t100 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t101 = self::Extension1|set#nullable1(new self::Class1::•(), #t100) in #t100);
nullable1 = let final self::Class1? #t102 = n1 in #t102.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t103 = let final self::Class1? #t104 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t105 = self::Extension1|set#nullable1(new self::Class1::•(), #t104) in #t104 in let final void #t106 = self::Extension1|set#nullable1(#t102{self::Class1}, #t103) in #t103;
let final self::Class1? #t107 = n1 in #t107.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t107{self::Class1}, let final self::Class1 #t108 = let final self::Class1 #t109 = new self::Class1::•() in let final void #t110 = self::Extension1|set#nullable1(new self::Class1::•(), #t109) in #t109 in let final void #t111 = self::Extension1|set#nullable1(new self::Class1::•(), #t108) in #t108);
nullable1 = let final self::Class1? #t112 = n1 in #t112.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t113 = let final self::Class1 #t114 = let final self::Class1 #t115 = new self::Class1::•() in let final void #t116 = self::Extension1|set#nullable1(new self::Class1::•(), #t115) in #t115 in let final void #t117 = self::Extension1|set#nullable1(new self::Class1::•(), #t114) in #t114 in let final void #t118 = self::Extension1|set#nullable1(#t112{self::Class1}, #t113) in #t113;
let final self::Class1? #t119 = n1 in #t119.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t119{self::Class1}, let final self::Class1 #t120 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t121 = self::Extension1|set#nullable1(new self::Class1::•(), #t120) in #t120);
nullable1 = let final self::Class1? #t122 = n1 in #t122.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t123 = let final self::Class1 #t124 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t125 = self::Extension1|set#nullable1(new self::Class1::•(), #t124) in #t124 in let final void #t126 = self::Extension1|set#nullable1(#t122{self::Class1}, #t123) in #t123;
let final self::Class1? #t127 = n1 in #t127.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t127{self::Class1}), self::Extension1|get#nullable1(new self::Class1::•()));
nullable1 = let final self::Class1? #t128 = n1 in #t128.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t129 = self::Extension1|get#nullable1(new self::Class1::•()) in let final void #t130 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t128{self::Class1}), #t129) in #t129;
let final self::Class1? #t131 = n1 in #t131.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t131{self::Class1}), let final self::Class1 #t132 = new self::Class1::•() in let final void #t133 = self::Extension1|set#nullable1(new self::Class1::•(), #t132) in #t132);
nullable1 = let final self::Class1? #t134 = n1 in #t134.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t135 = let final self::Class1 #t136 = new self::Class1::•() in let final void #t137 = self::Extension1|set#nullable1(new self::Class1::•(), #t136) in #t136 in let final void #t138 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t134{self::Class1}), #t135) in #t135;
let final self::Class1? #t139 = n1 in #t139.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t139{self::Class1}), self::Extension1|nonNullable1Method(new self::Class1::•()));
nullable1 = let final self::Class1? #t140 = n1 in #t140.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t141 = self::Extension1|nonNullable1Method(new self::Class1::•()) in let final void #t142 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(#t140{self::Class1}), #t141) in #t141;
let final self::Class1? #t143 = n1 in #t143.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t143{self::Class1})));
let final self::Class1? #t144 = n1 in #t144.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t144{self::Class1})), new self::Class1::•());
nullable1 = let final self::Class1? #t145 = n1 in #t145.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t146 = new self::Class1::•() in let final void #t147 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t145{self::Class1})), #t146) in #t146;
let final self::Class1? #t148 = n1 in #t148.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|get#nonNullable1(#t148{self::Class1})));
let final self::Class1? #t149 = n1 in #t149.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t149{self::Class1}, self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())));
nullable1 = let final self::Class1? #t150 = n1 in #t150.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t151 = self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t152 = self::Extension1|set#nullable1(#t150{self::Class1}, #t151) in #t151;
let final self::Class1? #t153 = n1 in #t153.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t153{self::Class1}, let final self::Class1 #t154 = new self::Class1::•() in let final void #t155 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t154) in #t154);
nullable1 = let final self::Class1? #t156 = n1 in #t156.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t157 = let final self::Class1 #t158 = new self::Class1::•() in let final void #t159 = self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(new self::Class1::•()), #t158) in #t158 in let final void #t160 = self::Extension1|set#nullable1(#t156{self::Class1}, #t157) in #t157;
let final self::Class1? #t161 = n1 in #t161.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(#t161{self::Class1}, self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())));
nullable1 = let final self::Class1? #t162 = n1 in #t162.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t163 = self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(new self::Class1::•())) in let final void #t164 = self::Extension1|set#nullable1(#t162{self::Class1}, #t163) in #t163;
let final self::Class1? #t165 = n1 in #t165.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t165{self::Class1})));
let final self::Class1? #t166 = n1 in #t166.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|set#nullable1(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t166{self::Class1})), new self::Class1::•());
let final self::Class1? #t167 = n1 in #t167.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(self::Extension1|nonNullable1Method(#t167{self::Class1})));
let final self::Class1? #t168 = n1 in #t168.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t169 = self::Extension1|nonNullable1Method(#t168{self::Class1}) in #t169.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t169{self::Class1});
}
static method indexAccess(self::Class1? n1, self::Class2? n2, self::Class3? n3) → void {
self::Class1? nullable1 = n1;
self::Class2? nullable2 = n2;
self::Class3? nullable3 = n3;
let final self::Class1? #t170 = n1 in #t170.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|[](#t170{self::Class1}, nullable1);
let final self::Class1? #t171 = n1 in #t171.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|[]=(#t171{self::Class1}, nullable1, new self::Class1::•());
let final self::Class1? #t172 = n1 in #t172.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t173 = self::Extension1|[](#t172{self::Class1}, nullable1) in #t173.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t173{self::Class1});
let final self::Class1? #t174 = n1 in #t174.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|[](self::Extension1|get#nonNullable1(#t174{self::Class1}), nullable1);
let final self::Class1? #t175 = n1 in #t175.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|[]=(self::Extension1|get#nonNullable1(#t175{self::Class1}), nullable1, new self::Class1::•());
nullable1 = let final self::Class1? #t176 = n1 in #t176.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t177 = self::Extension1|get#nonNullable1(#t176{self::Class1}) in let final self::Class1? #t178 = nullable1 in let final self::Class1 #t179 = new self::Class1::•() in let final void #t180 = self::Extension1|[]=(#t177, #t178, #t179) in #t179;
let final self::Class1? #t181 = n1 in #t181.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t182 = self::Extension1|[](self::Extension1|get#nonNullable1(#t181{self::Class1}), nullable1) in #t182.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t182{self::Class1});
let final self::Class1? #t183 = n1 in #t183.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t184 = self::Extension1|get#nonNullable2(#t183{self::Class1}) in let final self::Class2? #t185 = nullable2 in self::Extension2|[]=(#t184, #t185, self::Extension2|+(self::Extension2|[](#t184, #t185), 0));
nullable2 = let final self::Class1? #t186 = n1 in #t186.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t187 = self::Extension1|get#nonNullable2(#t186{self::Class1}) in let final self::Class2? #t188 = nullable2 in let final self::Class2 #t189 = self::Extension2|+(self::Extension2|[](#t187, #t188), 0) in let final void #t190 = self::Extension2|[]=(#t187, #t188, #t189) in #t189;
let final self::Class1? #t191 = n1 in #t191.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t192 = nullable1 in self::Extension1|[](#t191{self::Class1}, #t192).{core::Object::==}(null) ?{self::Class1?} self::Extension1|[]=(#t191{self::Class1}, #t192, nullable1) : null;
nullable1 = let final self::Class1? #t193 = n1 in #t193.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t194 = nullable1 in let final self::Class1? #t195 = self::Extension1|[](#t193{self::Class1}, #t194) in #t195.{core::Object::==}(null) ?{self::Class1?} let final self::Class1? #t196 = nullable1 in let final void #t197 = self::Extension1|[]=(#t193{self::Class1}, #t194, #t196) in #t196 : #t195{self::Class1};
let final self::Class2? #t198 = n2 in #t198.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t199 = nullable2 in self::Extension2|[]=(#t198{self::Class2}, #t199, self::Extension2|+(self::Extension2|[](#t198{self::Class2}, #t199), 0));
nullable2 = let final self::Class2? #t200 = n2 in #t200.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t201 = nullable2 in let final self::Class2 #t202 = self::Extension2|+(self::Extension2|[](#t200{self::Class2}, #t201), 0) in let final void #t203 = self::Extension2|[]=(#t200{self::Class2}, #t201, #t202) in #t202;
let final self::Class2? #t204 = n2 in #t204.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t205 = nullable2 in self::Extension2|[]=(#t204{self::Class2}, #t205, self::Extension2|+(self::Extension2|[](#t204{self::Class2}, #t205), 0));
nullable2 = let final self::Class2? #t206 = n2 in #t206.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t207 = nullable2 in let final self::Class2 #t208 = self::Extension2|+(self::Extension2|[](#t206{self::Class2}, #t207), 0) in let final void #t209 = self::Extension2|[]=(#t206{self::Class2}, #t207, #t208) in #t208;
let final self::Class2? #t210 = n2 in #t210.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t211 = nullable2 in self::Extension2|[]=(#t210{self::Class2}, #t211, self::Extension2|+(self::Extension2|[](#t210{self::Class2}, #t211), 1));
nullable2 = let final self::Class2? #t212 = n2 in #t212.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t213 = nullable2 in let final self::Class2 #t214 = self::Extension2|[](#t212{self::Class2}, #t213) in let final void #t215 = self::Extension2|[]=(#t212{self::Class2}, #t213, self::Extension2|+(#t214, 1)) in #t214;
let final self::Class2? #t216 = n2 in #t216.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t217 = nullable2 in let final self::Class2 #t218 = self::Extension2|+(self::Extension2|[](#t216{self::Class2}, #t217), 1) in let final void #t219 = self::Extension2|[]=(#t216{self::Class2}, #t217, #t218) in #t218;
nullable2 = let final self::Class2? #t220 = n2 in #t220.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t221 = nullable2 in let final self::Class2 #t222 = self::Extension2|+(self::Extension2|[](#t220{self::Class2}, #t221), 1) in let final void #t223 = self::Extension2|[]=(#t220{self::Class2}, #t221, #t222) in #t222;
let final self::Class1? #t224 = n1 in #t224.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t225 = self::Extension1|get#nonNullable2(#t224{self::Class1}) in let final self::Class2? #t226 = nullable2 in self::Extension2|[]=(#t225, #t226, self::Extension2|+(self::Extension2|[](#t225, #t226), 1));
nullable2 = let final self::Class1? #t227 = n1 in #t227.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t228 = self::Extension1|get#nonNullable2(#t227{self::Class1}) in let final self::Class2? #t229 = nullable2 in let final self::Class2 #t230 = self::Extension2|[](#t228, #t229) in let final void #t231 = self::Extension2|[]=(#t228, #t229, self::Extension2|+(#t230, 1)) in #t230;
let final self::Class1? #t232 = n1 in #t232.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t233 = self::Extension1|get#nonNullable2(#t232{self::Class1}) in let final self::Class2? #t234 = nullable2 in let final self::Class2 #t235 = self::Extension2|+(self::Extension2|[](#t233, #t234), 1) in let final void #t236 = self::Extension2|[]=(#t233, #t234, #t235) in #t235;
nullable2 = let final self::Class1? #t237 = n1 in #t237.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t238 = self::Extension1|get#nonNullable2(#t237{self::Class1}) in let final self::Class2? #t239 = nullable2 in let final self::Class2 #t240 = self::Extension2|+(self::Extension2|[](#t238, #t239), 1) in let final void #t241 = self::Extension2|[]=(#t238, #t239, #t240) in #t240;
let final self::Class1? #t242 = n1 in #t242.{core::Object::==}(null) ?{self::Class2?} null : self::Extension2|[](self::Extension2|[](self::Extension1|get#nonNullable2(#t242{self::Class1}), nullable2), nullable2);
let final self::Class1? #t243 = n1 in #t243.{core::Object::==}(null) ?{self::Class2?} null : self::Extension2|[]=(self::Extension2|[](self::Extension1|get#nonNullable2(#t243{self::Class1}), nullable2), nullable2, new self::Class2::•());
nullable2 = let final self::Class1? #t244 = n1 in #t244.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t245 = self::Extension2|[](self::Extension1|get#nonNullable2(#t244{self::Class1}), nullable2) in let final self::Class2? #t246 = nullable2 in let final self::Class2 #t247 = new self::Class2::•() in let final void #t248 = self::Extension2|[]=(#t245, #t246, #t247) in #t247;
let final self::Class1? #t249 = n1 in #t249.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t250 = self::Extension2|[](self::Extension2|[](self::Extension1|get#nonNullable2(#t249{self::Class1}), nullable2), nullable2) in #t250.{core::Object::==}(null) ?{self::Class2?} null : self::Extension2|nonNullable2Method(#t250{self::Class2});
let final self::Class1? #t251 = n1 in #t251.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t252 = self::Extension2|[](self::Extension1|get#nonNullable2(#t251{self::Class1}), nullable2) in let final self::Class2? #t253 = nullable2 in self::Extension2|[]=(#t252, #t253, self::Extension2|+(self::Extension2|[](#t252, #t253), 0));
nullable2 = let final self::Class1? #t254 = n1 in #t254.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t255 = self::Extension2|[](self::Extension1|get#nonNullable2(#t254{self::Class1}), nullable2) in let final self::Class2? #t256 = nullable2 in let final self::Class2 #t257 = self::Extension2|+(self::Extension2|[](#t255, #t256), 0) in let final void #t258 = self::Extension2|[]=(#t255, #t256, #t257) in #t257;
let final self::Class1? #t259 = n1 in #t259.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t260 = self::Extension2|[](self::Extension1|get#nonNullable2(#t259{self::Class1}), nullable2) in let final self::Class2? #t261 = nullable2 in self::Extension2|[]=(#t260, #t261, self::Extension2|+(self::Extension2|[](#t260, #t261), 1));
nullable2 = let final self::Class1? #t262 = n1 in #t262.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t263 = self::Extension2|[](self::Extension1|get#nonNullable2(#t262{self::Class1}), nullable2) in let final self::Class2? #t264 = nullable2 in let final self::Class2 #t265 = self::Extension2|[](#t263, #t264) in let final void #t266 = self::Extension2|[]=(#t263, #t264, self::Extension2|+(#t265, 1)) in #t265;
let final self::Class1? #t267 = n1 in #t267.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t268 = self::Extension2|[](self::Extension1|get#nonNullable2(#t267{self::Class1}), nullable2) in let final self::Class2? #t269 = nullable2 in let final self::Class2 #t270 = self::Extension2|+(self::Extension2|[](#t268, #t269), 1) in let final void #t271 = self::Extension2|[]=(#t268, #t269, #t270) in #t270;
nullable2 = let final self::Class1? #t272 = n1 in #t272.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t273 = self::Extension2|[](self::Extension1|get#nonNullable2(#t272{self::Class1}), nullable2) in let final self::Class2? #t274 = nullable2 in let final self::Class2 #t275 = self::Extension2|+(self::Extension2|[](#t273, #t274), 1) in let final void #t276 = self::Extension2|[]=(#t273, #t274, #t275) in #t275;
let final self::Class1? #t277 = n1 in #t277.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t278 = self::Extension1|[](#t277{self::Class1}, nullable1) in #t278.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|[](#t278{self::Class1}, nullable1);
let final self::Class1? #t279 = n1 in #t279.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t280 = self::Extension1|[](#t279{self::Class1}, nullable1) in #t280.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|[]=(#t280{self::Class1}, nullable1, new self::Class1::•());
nullable1 = let final self::Class1? #t281 = n1 in #t281.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t282 = self::Extension1|[](#t281{self::Class1}, nullable1) in #t282.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t283 = nullable1 in let final self::Class1 #t284 = new self::Class1::•() in let final void #t285 = self::Extension1|[]=(#t282{self::Class1}, #t283, #t284) in #t284;
let final self::Class1? #t286 = n1 in #t286.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t287 = self::Extension1|[](#t286{self::Class1}, nullable1) in #t287.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t288 = self::Extension1|[](#t287{self::Class1}, nullable1) in #t288.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t288{self::Class1});
nullable1 = let final self::Class1? #t289 = n1 in #t289.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t290 = self::Extension1|[](#t289{self::Class1}, nullable1) in #t290.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t291 = self::Extension1|[](#t290{self::Class1}, nullable1) in #t291.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|nonNullable1Method(#t291{self::Class1});
let final self::Class1? #t292 = n1 in #t292.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t293 = self::Extension1|[](#t292{self::Class1}, nullable1) in #t293.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t294 = nullable1 in self::Extension1|[](#t293{self::Class1}, #t294).{core::Object::==}(null) ?{self::Class1?} self::Extension1|[]=(#t293{self::Class1}, #t294, nullable1) : null;
nullable1 = let final self::Class1? #t295 = n1 in #t295.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t296 = self::Extension1|[](#t295{self::Class1}, nullable1) in #t296.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t297 = nullable1 in let final self::Class1? #t298 = self::Extension1|[](#t296{self::Class1}, #t297) in #t298.{core::Object::==}(null) ?{self::Class1?} let final self::Class1? #t299 = nullable1 in let final void #t300 = self::Extension1|[]=(#t296{self::Class1}, #t297, #t299) in #t299 : #t298{self::Class1};
let final self::Class3? #t301 = n3 in #t301.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t302 = self::Extension3|[](#t301{self::Class3}, nullable3) in #t302.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t303 = nullable2 in self::Extension2|[]=(#t302{self::Class2}, #t303, self::Extension2|+(self::Extension2|[](#t302{self::Class2}, #t303), 0));
nullable2 = let final self::Class3? #t304 = n3 in #t304.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t305 = self::Extension3|[](#t304{self::Class3}, nullable3) in #t305.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t306 = nullable2 in let final self::Class2 #t307 = self::Extension2|+(self::Extension2|[](#t305{self::Class2}, #t306), 0) in let final void #t308 = self::Extension2|[]=(#t305{self::Class2}, #t306, #t307) in #t307;
let final self::Class3? #t309 = n3 in #t309.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t310 = self::Extension3|[](#t309{self::Class3}, nullable3) in #t310.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t311 = nullable2 in self::Extension2|[]=(#t310{self::Class2}, #t311, self::Extension2|+(self::Extension2|[](#t310{self::Class2}, #t311), 1));
nullable2 = let final self::Class3? #t312 = n3 in #t312.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t313 = self::Extension3|[](#t312{self::Class3}, nullable3) in #t313.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t314 = nullable2 in let final self::Class2 #t315 = self::Extension2|[](#t313{self::Class2}, #t314) in let final void #t316 = self::Extension2|[]=(#t313{self::Class2}, #t314, self::Extension2|+(#t315, 1)) in #t315;
let final self::Class3? #t317 = n3 in #t317.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t318 = self::Extension3|[](#t317{self::Class3}, nullable3) in #t318.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t319 = nullable2 in let final self::Class2 #t320 = self::Extension2|+(self::Extension2|[](#t318{self::Class2}, #t319), 1) in let final void #t321 = self::Extension2|[]=(#t318{self::Class2}, #t319, #t320) in #t320;
nullable2 = let final self::Class3? #t322 = n3 in #t322.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t323 = self::Extension3|[](#t322{self::Class3}, nullable3) in #t323.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2? #t324 = nullable2 in let final self::Class2 #t325 = self::Extension2|+(self::Extension2|[](#t323{self::Class2}, #t324), 1) in let final void #t326 = self::Extension2|[]=(#t323{self::Class2}, #t324, #t325) in #t325;
}
static method operatorAccess(self::Class1? n1, self::Class2? n2) → void {
self::Class2? nullable2 = n2;
self::throws(() → void => let final<BottomType> #t327 = invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:226:33: Error: Operator '+' cannot be called on 'Class1?' because it is potentially null.
- 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
throws(() => n1?.nonNullable1 + 0);
^" in self::Extension1|+(let final self::Class1? #t328 = n1 in #t328.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nonNullable1(#t328{self::Class1}), 0));
self::throws(() → void => let final<BottomType> #t329 = invalid-expression "pkg/front_end/testcases/nnbd/null_shorting_extension.dart:227:16: Error: Operator 'unary-' cannot be called on 'Class1?' because it is potentially null.
- 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting_extension.dart'.
throws(() => -n1?.nonNullable1);
^" in self::Extension1|unary-(let final self::Class1? #t330 = n1 in #t330.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nonNullable1(#t330{self::Class1})));
let final self::Class2? #t331 = n2 in #t331.{core::Object::==}(null) ?{self::Class2?} null : self::Extension2|set#nonNullable2(#t331, self::Extension2|+(self::Extension2|get#nonNullable2(#t331), 0));
nullable2 = let final self::Class2? #t332 = n2 in #t332.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t333 = self::Extension2|+(self::Extension2|get#nonNullable2(#t332), 0) in let final void #t334 = self::Extension2|set#nonNullable2(#t332, #t333) in #t333;
let final self::Class2? #t335 = n2 in #t335.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t336 = self::Extension2|get#nonNullable2(#t335{self::Class2}) in self::Extension2|set#nonNullable2(#t336, self::Extension2|+(self::Extension2|get#nonNullable2(#t336), 0));
nullable2 = let final self::Class2? #t337 = n2 in #t337.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t338 = self::Extension2|get#nonNullable2(#t337{self::Class2}) in let final self::Class2 #t339 = self::Extension2|+(self::Extension2|get#nonNullable2(#t338), 0) in let final void #t340 = self::Extension2|set#nonNullable2(#t338, #t339) in #t339;
let final self::Class2? #t341 = n2 in #t341.{core::Object::==}(null) ?{self::Class2?} null : self::Extension2|set#nonNullable2(#t341, self::Extension2|+(self::Extension2|get#nonNullable2(#t341), 1));
nullable2 = let final self::Class2? #t342 = n2 in #t342.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t343 = self::Extension2|get#nonNullable2(#t342) in let final void #t344 = self::Extension2|set#nonNullable2(#t342, self::Extension2|+(#t343, 1)) in #t343;
let final self::Class2? #t345 = n2 in #t345.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t346 = self::Extension2|+(self::Extension2|get#nonNullable2(#t345), 1) in let final void #t347 = self::Extension2|set#nonNullable2(#t345, #t346) in #t346;
nullable2 = let final self::Class2? #t348 = n2 in #t348.{core::Object::==}(null) ?{self::Class2?} null : let final self::Class2 #t349 = self::Extension2|+(self::Extension2|get#nonNullable2(#t348), 1) in let final void #t350 = self::Extension2|set#nonNullable2(#t348, #t349) in #t349;
}
static method ifNull(self::Class1? n1) → void {
self::Class1? nullable1 = n1;
let final self::Class1? #t351 = n1 in #t351.{core::Object::==}(null) ?{self::Class1?} null : self::Extension1|get#nullable1(#t351).{core::Object::==}(null) ?{self::Class1} self::Extension1|set#nullable1(#t351, n1{self::Class1}) : null;
n1 = let final self::Class1? #t352 = n1 in #t352.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1? #t353 = self::Extension1|get#nullable1(#t352) in #t353.{core::Object::==}(null) ?{self::Class1} let final self::Class1 #t354 = n1{self::Class1} in let final void #t355 = self::Extension1|set#nullable1(#t352, #t354) in #t354 : #t353{self::Class1};
let final self::Class1? #t356 = n1 in #t356.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t357 = self::Extension1|get#nonNullable1(#t356{self::Class1}) in self::Extension1|get#nullable1(#t357).{core::Object::==}(null) ?{self::Class1} self::Extension1|set#nullable1(#t357, n1{self::Class1}) : null;
n1 = let final self::Class1? #t358 = n1 in #t358.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t359 = self::Extension1|get#nonNullable1(#t358{self::Class1}) in let final self::Class1? #t360 = self::Extension1|get#nullable1(#t359) in #t360.{core::Object::==}(null) ?{self::Class1} let final self::Class1 #t361 = n1{self::Class1} in let final void #t362 = self::Extension1|set#nullable1(#t359, #t361) in #t361 : #t360{self::Class1};
let final self::Class1? #t363 = n1 in #t363.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t364 = self::Extension1|get#nonNullable1(#t363{self::Class1}) in let final self::Class1 #t365 = n1{self::Class1} in self::Extension1|[](#t364, #t365).{core::Object::==}(null) ?{self::Class1} self::Extension1|[]=(#t364, #t365, n1{self::Class1}) : null;
n1 = let final self::Class1? #t366 = n1 in #t366.{core::Object::==}(null) ?{self::Class1?} null : let final self::Class1 #t367 = self::Extension1|get#nonNullable1(#t366{self::Class1}) in let final self::Class1 #t368 = n1{self::Class1} in let final self::Class1? #t369 = self::Extension1|[](#t367, #t368) in #t369.{core::Object::==}(null) ?{self::Class1} let final self::Class1 #t370 = n1{self::Class1} in let final void #t371 = self::Extension1|[]=(#t367, #t368, #t370) in #t370 : #t369{self::Class1};
}
static method throws(() → void f) → void {
try {
f.call();
}
on core::Object catch(final core::Object _) {
return;
}
throw "Expected exception.";
}