| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | class A2 extends core::Object { | 
 |   field core::String? foo = null; | 
 |   synthetic constructor •() → self::A2 | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | class A5 extends core::Object { | 
 |   synthetic constructor •() → self::A5 | 
 |     : super core::Object::•() | 
 |     ; | 
 |   operator []=(core::int index, core::String? value) → void {} | 
 |   operator [](core::int index) → core::String? | 
 |     return null; | 
 | } | 
 | class B5 extends self::A5 { | 
 |   synthetic constructor •() → self::B5 | 
 |     : super self::A5::•() | 
 |     ; | 
 |   method test5() → dynamic { | 
 |     core::String s = let final core::int #t1 = 0 in let final core::String? #t2 = super.{self::A5::[]}(#t1) in #t2 == null ?{core::String} let final core::String #t3 = "bar" in let final void #t4 = super.{self::A5::[]=}(#t1, #t3) in #t3 : #t2{core::String}; | 
 |   } | 
 | } | 
 | class A7 extends core::Object { | 
 |   field core::String foo = "foo"; | 
 |   field core::String? bar = null; | 
 |   synthetic constructor •() → self::A7 | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | extension E6 on core::double { | 
 |   operator []= = self::E6|[]=; | 
 |   operator [] = self::E6|[]; | 
 | } | 
 | static method hest1<T extends core::Object? = dynamic>() → self::hest1::T% | 
 |   return throw "hest"; | 
 | static method test1() → dynamic { | 
 |   function foo() → core::String? | 
 |     return null; | 
 |   function bar() → core::String | 
 |     return "bar"; | 
 |   core::String s = let final core::String? #t5 = foo(){() → core::String?} in #t5 == null ?{core::String} bar(){() → core::String} : #t5{core::String}; | 
 |   core::String s2 = let final core::String? #t6 = self::hest1<core::String?>() in #t6 == null ?{core::String} "fisk" : #t6{core::String}; | 
 | } | 
 | static method test2(self::A2 a) → dynamic { | 
 |   core::String s = let final self::A2 #t7 = a in let final core::String? #t8 = #t7.{self::A2::foo}{core::String?} in #t8 == null ?{core::String} #t7.{self::A2::foo} = "bar" : #t8{core::String}; | 
 | } | 
 | static method test3() → dynamic { | 
 |   has-declared-initializer core::String? s = null; | 
 |   core::String s2 = let final core::String? #t9 = s in #t9 == null ?{core::String} s = "bar" : #t9{core::String}; | 
 | } | 
 | static method test4() → dynamic { | 
 |   core::List<core::String?> list = <core::String?>[null]; | 
 |   core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11){(core::int) → core::String?} in #t12 == null ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13){(core::int, core::String?) → void} in #t13 : #t12{core::String}; | 
 | } | 
 | static extension-member method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {} | 
 | static extension-member method E6|[](lowered final core::double #this, core::int index) → core::String? | 
 |   return null; | 
 | static method test6() → dynamic { | 
 |   core::String s = let final core::double #t15 = 3.14 in let final core::int #t16 = 0 in let final core::String? #t17 = self::E6|[](#t15, #t16) in #t17 == null ?{core::String} let final core::String #t18 = "bar" in let final void #t19 = self::E6|[]=(#t15, #t16, #t18) in #t18 : #t17{core::String}; | 
 | } | 
 | static method test7(self::A7? a) → dynamic { | 
 |   core::String? s = let final self::A7? #t20 = a in #t20 == null ?{core::String?} null : let final core::String #t21 = #t20.{self::A7::foo}{core::String} in #t21 == null ?{core::String} #t20.{self::A7::foo} = "bar" : #t21; | 
 |   core::String? s2 = let final self::A7? #t22 = a in #t22 == null ?{core::String?} null : let final core::String? #t23 = #t22.{self::A7::bar}{core::String?} in #t23 == null ?{core::String} #t22.{self::A7::bar} = "bar" : #t23{core::String}; | 
 | } | 
 | static method main() → dynamic {} |