| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:31:4: Error: Can't assign to the final variable 'initializedFinal'. |
| // (initializedFinal, // Error |
| // ^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:32:7: Error: Can't assign to the final variable '#initializedLateFinal'. |
| // initializedLateFinal, // Error |
| // ^^^^^^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:35:5: Error: Final variable 'definitelyAssignedFinal' might already be assigned at this point. |
| // definitelyAssignedFinal] = y; // Error |
| // ^^^^^^^^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:36:17: Error: Late final variable '#definitelyAssignedLateFinal' definitely assigned. |
| // Class(field1: definitelyAssignedLateFinal, // Error |
| // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:37:17: Error: Final variable 'notDefinitelyAssignedFinal' might already be assigned at this point. |
| // field2: [[notDefinitelyAssignedFinal, _], // Error |
| // ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| import "dart:_internal" as _in; |
| |
| class Class extends core::Object { |
| field dynamic field1 = null; |
| field dynamic field2 = null; |
| synthetic constructor •() → self::Class |
| : super core::Object::•() |
| ; |
| } |
| static method method(dynamic x, dynamic y, dynamic z) → dynamic { |
| final core::int initializedFinal = 5; |
| lowered final has-declared-initializer core::int? #initializedLateFinal; |
| function #initializedLateFinal#get() → core::int |
| return let final core::int? #t1 = #initializedLateFinal in #t1 == null ?{core::int} let final core::int #t2 = 5 in #initializedLateFinal == null ?{core::int} #initializedLateFinal = #t2 : throw{for-error-handling} new _in::LateError::localADI("initializedLateFinal") : #t1{core::int}; |
| final dynamic definitelyUnassignedFinal; |
| lowered final core::int? #definitelyUnassignedLateFinal; |
| function #definitelyUnassignedLateFinal#get() → core::int |
| return let final core::int? #t3 = #definitelyUnassignedLateFinal in #t3 == null ?{core::int} throw{for-error-handling} new _in::LateError::localNI("definitelyUnassignedLateFinal") : #t3{core::int}; |
| function #definitelyUnassignedLateFinal#set(core::int definitelyUnassignedLateFinal#param) → dynamic |
| if(#definitelyUnassignedLateFinal == null) |
| return #definitelyUnassignedLateFinal = definitelyUnassignedLateFinal#param; |
| else |
| throw{for-error-handling} new _in::LateError::localAI("definitelyUnassignedLateFinal"); |
| final dynamic definitelyAssignedFinal; |
| lowered final dynamic #definitelyAssignedLateFinal; |
| lowered core::bool #definitelyAssignedLateFinal#isSet = false; |
| function #definitelyAssignedLateFinal#get() → dynamic |
| return #definitelyAssignedLateFinal#isSet ?{dynamic} #definitelyAssignedLateFinal : throw{for-error-handling} new _in::LateError::localNI("definitelyAssignedLateFinal"); |
| function #definitelyAssignedLateFinal#set(dynamic definitelyAssignedLateFinal#param) → dynamic |
| if(#definitelyAssignedLateFinal#isSet) |
| throw{for-error-handling} new _in::LateError::localAI("definitelyAssignedLateFinal"); |
| else { |
| #definitelyAssignedLateFinal#isSet = true; |
| return #definitelyAssignedLateFinal = definitelyAssignedLateFinal#param; |
| } |
| final core::int notDefinitelyAssignedFinal; |
| lowered final core::int? #notDefinitelyAssignedLateFinal; |
| function #notDefinitelyAssignedLateFinal#get() → core::int |
| return let final core::int? #t4 = #notDefinitelyAssignedLateFinal in #t4 == null ?{core::int} throw{for-error-handling} new _in::LateError::localNI("notDefinitelyAssignedLateFinal") : #t4{core::int}; |
| function #notDefinitelyAssignedLateFinal#set(core::int notDefinitelyAssignedLateFinal#param) → dynamic |
| if(#notDefinitelyAssignedLateFinal == null) |
| return #notDefinitelyAssignedLateFinal = notDefinitelyAssignedLateFinal#param; |
| else |
| throw{for-error-handling} new _in::LateError::localAI("notDefinitelyAssignedLateFinal"); |
| if(x =={core::Object::==}{(core::Object) → core::bool} 5) { |
| notDefinitelyAssignedFinal = 5; |
| #notDefinitelyAssignedLateFinal#set(15){(core::int) → dynamic}; |
| } |
| definitelyAssignedFinal = 10; |
| #definitelyAssignedLateFinal#set(20){(dynamic) → dynamic}; |
| { |
| final synthesized dynamic #0#0 = x as{TypeError,ForDynamic} (core::int, core::int, dynamic); |
| if(!(#0#0 is (core::Object?, core::Object?, core::Object?) && invalid-expression "pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:31:4: Error: Can't assign to the final variable 'initializedFinal'. |
| (initializedFinal, // Error |
| ^^^^^^^^^^^^^^^^" && invalid-expression "pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:32:7: Error: Can't assign to the final variable '#initializedLateFinal'. |
| initializedLateFinal, // Error |
| ^^^^^^^^^^^^^^^^^^^^^" && (let final core::Object? #t5 = definitelyUnassignedFinal = #0#0{(core::Object?, core::Object?, core::Object?)}.$3{core::Object?} in true))) |
| throw{for-error-handling} new core::StateError::•("Pattern matching error"); |
| } |
| { |
| final synthesized dynamic #1#0 = y as{TypeError,ForDynamic} core::List<core::int>; |
| if(!(#1#0 is core::List<dynamic> && #1#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final dynamic #t6 = #definitelyUnassignedLateFinal#set(#1#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} as core::int?){(core::int) → dynamic} in true) && invalid-expression "pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:35:5: Error: Final variable 'definitelyAssignedFinal' might already be assigned at this point. |
| definitelyAssignedFinal] = y; // Error |
| ^^^^^^^^^^^^^^^^^^^^^^^")) |
| throw{for-error-handling} new core::StateError::•("Pattern matching error"); |
| } |
| { |
| final synthesized dynamic #2#0 = z as{TypeError,ForDynamic} self::Class; |
| synthesized dynamic #2#3; |
| synthesized core::bool #2#3#isSet = false; |
| synthesized dynamic #2#9; |
| synthesized core::bool #2#9#isSet = false; |
| synthesized dynamic #2#16; |
| synthesized core::bool #2#16#isSet = false; |
| if(!(#2#0 is self::Class && (let final dynamic #t7 = #2#0{self::Class}.{self::Class::field1}{dynamic} in invalid-expression "pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:36:17: Error: Late final variable '#definitelyAssignedLateFinal' definitely assigned. |
| Class(field1: definitelyAssignedLateFinal, // Error |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^") && ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t8 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) is core::List<dynamic> && ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t9 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && ((#2#9#isSet ?{dynamic} #2#9{dynamic} : let final core::bool #t10 = #2#9#isSet = true in #2#9 = ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t11 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) is core::List<dynamic> && ((#2#9#isSet ?{dynamic} #2#9{dynamic} : let final core::bool #t12 = #2#9#isSet = true in #2#9 = ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t13 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && invalid-expression "pkg/front_end/testcases/late_lowering/pattern_assignment_final.dart:37:17: Error: Final variable 'notDefinitelyAssignedFinal' might already be assigned at this point. |
| field2: [[notDefinitelyAssignedFinal, _], // Error |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^") && ((#2#16#isSet ?{dynamic} #2#16{dynamic} : let final core::bool #t14 = #2#16#isSet = true in #2#16 = ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t15 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(1){(core::int) → dynamic}) is core::List<dynamic> && ((#2#16#isSet ?{dynamic} #2#16{dynamic} : let final core::bool #t16 = #2#16#isSet = true in #2#16 = ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t17 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(1){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final dynamic #t18 = #notDefinitelyAssignedLateFinal#set(((#2#16#isSet ?{dynamic} #2#16{dynamic} : let final core::bool #t19 = #2#16#isSet = true in #2#16 = ((#2#3#isSet ?{dynamic} #2#3{dynamic} : let final core::bool #t20 = #2#3#isSet = true in #2#3 = #2#0{self::Class}.{self::Class::field2}{dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(1){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(1){(core::int) → dynamic} as core::int?){(core::int) → dynamic} in true))))) |
| throw{for-error-handling} new core::StateError::•("Pattern matching error"); |
| } |
| } |
| |
| constants { |
| #C1 = 2 |
| } |
| |
| Extra constant evaluation status: |
| Evaluated: VariableGet @ org-dartlang-testcase:///pattern_assignment_final.dart:12:14 -> IntConstant(5) |
| Extra constant evaluation: evaluated: 223, effectively constant: 1 |