blob: 12dcc9664299f64fd5caba21f0f2b8aa5a9229e4 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method lateLocalInit() core::int?
return 123;
static method main() dynamic {
lowered core::int? #lateLocal;
lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
#lateLocal = self::lateLocalInit();
#lateLocal#isSet = true;
}
return #lateLocal;
}
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value1, T? value2) Null {
lowered T? #lateGenericLocal;
lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
#lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
return #lateGenericLocal;
}
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
self::expect(value2, #lateGenericLocal#get.call());
}
local.call<core::int?>(null, 0);
local.call<core::int?>(0, null);
local.call<core::int>(null, 0);
local.call<core::int>(0, null);
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!expected.{core::Object::==}(actual))
throw "Expected ${expected}, actual ${actual}";
}