blob: d867d13cdccb9909d900d940d0f989e5e2714f6b [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;
function #lateLocal#get() → core::int
return let final core::int? #t1 = #lateLocal in #t1 == null ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
function #lateLocal#set(core::int lateLocal#param) → dynamic
return #lateLocal = lateLocal#param;
self::throws(() core::int => #lateLocal#get(){() → core::int}, "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set(123){(core::int) → dynamic});
self::expect(123, #lateLocal#get(){() → core::int});
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{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% lateGenericLocal#param) → dynamic {
#lateGenericLocal#isSet = true;
return #lateGenericLocal = lateGenericLocal#param;
}
self::throws(() T% => #lateGenericLocal#get(){() → T%}, "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set(value){(T%) → dynamic});
self::expect(value, #lateGenericLocal#get(){() → T%});
}
local<core::int?>(null){(core::int?) Null};
local<core::int?>(0){(core::int?) Null};
local<core::int>(0){(core::int) Null};
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
static method throws(() dynamic f, core::String message) dynamic {
dynamic value;
try {
value = f(){() dynamic};
}
on core::Error catch(final core::Error e) {
core::print(e);
return;
}
throw "${message}: ${value}";
}