blob: 9474df73c0c483b1650f636a2d0e8a9096fe9c6b [file] [log] [blame]
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