blob: 0e44ebbc98ec5a71eac4c86ff229d3b1d0ef6cde [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
static method main() void {
self::testNullableUninitializedNonFinalLocal();
self::testNonNullableUninitializedNonFinalLocal();
self::testNullableUninitializedFinalLocal();
self::testNonNullableUninitializedFinalLocal();
self::testNullableInitializedNonFinalLocal();
self::testNonNullableInitializedNonFinalLocal();
self::testNullableInitializedFinalLocal();
self::testNonNullableInitializedFinalLocal();
}
static method testNullableUninitializedNonFinalLocal() void {
late core::int? x;
x = 42;
core::print(x{core::int});
}
static method testNonNullableUninitializedNonFinalLocal() void {
late core::int x;
x = 42;
core::print(x);
}
static method testNullableUninitializedFinalLocal() void {
late final core::int? x;
x = 42;
core::print(x{core::int});
}
static method testNonNullableUninitializedFinalLocal() void {
late final core::int x;
x = 42;
core::print(x);
}
static method testNullableInitializedNonFinalLocal() void {
lowered core::int? #x = _in::createSentinel<core::int?>();
function #x#get() → core::int?
return let final core::int? #t1 = #x in _in::isSentinel(#t1) ?{core::int?} #x = 1.{core::int::unary-}(){() → core::int} : #t1{core::int?};
function #x#set(core::int? #t2) → dynamic
return #x = #t2;
core::print(#x#get(){() → core::int?});
#x#set(42){(core::int?) → dynamic};
core::print(#x#get(){() → core::int?});
lowered core::int? #y = _in::createSentinel<core::int?>();
function #y#get() → core::int?
return let final core::int? #t3 = #y in _in::isSentinel(#t3) ?{core::int?} #y = null : #t3{core::int?};
function #y#set(core::int? #t4) → dynamic
return #y = #t4;
core::print(#y#get(){() → core::int?});
#y#set(42){(core::int?) → dynamic};
core::print(#y#get(){() → core::int?});
}
static method testNonNullableInitializedNonFinalLocal() void {
lowered core::int? #x = _in::createSentinel<core::int>();
function #x#get() → core::int
return let final core::int? #t5 = #x in _in::isSentinel(#t5) ?{core::int} #x = 1.{core::int::unary-}(){() → core::int} : #t5{core::int};
function #x#set(core::int #t6) → dynamic
return #x = #t6;
core::print(#x#get(){() → core::int});
#x#set(42){(core::int) → dynamic};
core::print(#x#get(){() → core::int});
}
static method testNullableInitializedFinalLocal() void {
lowered final core::int? #x = _in::createSentinel<core::int?>();
function #x#get() → core::int?
return let final core::int? #t7 = #x in _in::isSentinel(#t7) ?{core::int?} let final core::int? #t8 = 1.{core::int::unary-}(){() → core::int} in _in::isSentinel(#x) ?{core::int?} #x = #t8 : throw new _in::LateError::localADI("x") : #t7;
core::print(#x#get(){() → core::int?});
lowered final core::int? #y = _in::createSentinel<core::int?>();
function #y#get() → core::int?
return let final core::int? #t9 = #y in _in::isSentinel(#t9) ?{core::int?} let final core::int? #t10 = null in _in::isSentinel(#y) ?{core::int?} #y = #t10 : throw new _in::LateError::localADI("y") : #t9;
core::print(#y#get(){() → core::int?});
}
static method testNonNullableInitializedFinalLocal() void {
lowered final core::int? #x = _in::createSentinel<core::int>();
function #x#get() → core::int
return let final core::int #t11 = #x in _in::isSentinel(#t11) ?{core::int} let final core::int #t12 = 1.{core::int::unary-}(){() → core::int} in _in::isSentinel(#x) ?{core::int} #x = #t12 : throw new _in::LateError::localADI("x") : #t11;
core::print(#x#get(){() → core::int});
}