blob: 7fa4edcbf9f67be6973e48c2ee093cc5866449e1 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
static method main() dynamic {
lowered core::int? #lateLocal;
lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
return #lateLocal = #t1;
}
self::throws(() core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value) Null {
lowered T? #lateGenericLocal;
lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
return #lateGenericLocal = #t2;
}
self::throws(() T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
self::expect(value, #lateGenericLocal#get.call());
}
local.call<core::int?>(null);
local.call<core::int?>(0);
local.call<core::int>(null);
local.call<core::int>(0);
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!expected.{core::Object::==}(actual))
throw "Expected ${expected}, actual ${actual}";
}
static method throws(() dynamic f, core::String message) dynamic {
dynamic value;
try {
value = f.call();
}
on core::Error catch(final core::Error e) {
core::print(e);
return;
}
throw "${message}: ${value}";
}