| library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/late_lowering/compound.dart:20:3: Error: Late variable 'local' without initializer is definitely unassigned. |
| // local += 0; |
| // ^^^^^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| import "dart:_internal" as _in; |
| |
| static method main() → dynamic { |
| core::int? local1; |
| core::bool #local1#isSet = false; |
| function #local1#get() → core::int |
| return #local1#isSet ?{core::int} local1{core::int} : throw new _in::LateError::localNI("local1"); |
| function #local1#set(core::int #t1) → dynamic { |
| #local1#isSet = true; |
| return local1 = #t1; |
| } |
| #local1#set.call(0); |
| self::expect(0, #local1#get.call()); |
| #local1#set.call(#local1#get.call().{core::num::+}(2)); |
| self::expect(2, #local1#get.call()); |
| core::int? local2; |
| core::bool #local2#isSet = false; |
| function #local2#get() → core::int { |
| if(!#local2#isSet) { |
| local2 = 1; |
| #local2#isSet = true; |
| } |
| return local2{core::int}; |
| } |
| function #local2#set(core::int #t2) → dynamic { |
| #local2#isSet = true; |
| return local2 = #t2; |
| } |
| self::expect(1, #local2#get.call()); |
| #local2#set.call(#local2#get.call().{core::num::+}(2)); |
| self::expect(3, #local2#get.call()); |
| } |
| static method error() → dynamic { |
| final core::int? local; |
| core::bool #local#isSet = false; |
| function #local#get() → core::int |
| return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local"); |
| function #local#set(core::int #t3) → dynamic |
| if(#local#isSet) |
| throw new _in::LateError::localAI("local"); |
| else { |
| #local#isSet = true; |
| return local = #t3; |
| } |
| #local#set.call((let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/compound.dart:20:3: Error: Late variable 'local' without initializer is definitely unassigned. |
| local += 0; |
| ^^^^^" in #local#get.call()).{core::num::+}(0)); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!expected.{core::Object::==}(actual)) |
| throw "Expected ${expected}, actual ${actual}"; |
| } |