| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:6:32: Error: Can't assign to the final variable 'i'. |
| // for (final int i = 0; i < 3; i = i + 1) { |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:9:34: Error: Can't assign to the final variable 'i'. |
| // for (final (int i) = 0; i < 3; i = i + 1) { |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:12:13: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (final int i, String s) = (0, ''); i < 3; i = i + 1) { |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:15:20: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (int i, final String s) = (0, ''); i < 3; i = i + 1) { |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:19:34: Error: Can't assign to the final variable 'i'. |
| // for (final int i = 0; i < 3; i = i + 1) i, // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:22:36: Error: Can't assign to the final variable 'i'. |
| // for (final (int i) = 0; i < 3; i = i + 1) i, // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:25:15: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (final int i, String s) = (0, ''); i < 3; i = i + 1) i, // Error |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:28:22: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (int i, final String s) = (0, ''); i < 3; i = i + 1) i, // Ok |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:34:5: Error: Can't assign to the final variable 'i'. |
| // i = i + 1; // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:37:5: Error: Can't assign to the final variable 'i'. |
| // i = i + 1; // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:39:13: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (final int i, String s) in [(1, 'a'), (2, 'b'), (3, 'c')]) { |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:40:5: Error: Can't assign to the final variable 'i'. |
| // i = i + 1; // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:42:20: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (int i, final String s) in [(1, 'a'), (2, 'b'), (3, 'c')]) { |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:46:36: Error: Can't assign to the final variable 'i'. |
| // for (final int i in [1, 2, 3]) i = i + 1 // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:49:38: Error: Can't assign to the final variable 'i'. |
| // for (final (int i) in [1, 2, 3]) i = i + 1 // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:52:15: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (final int i, String s) in [(1, 'a'), (2, 'b'), (3, 'c')]) |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:53:7: Error: Can't assign to the final variable 'i'. |
| // i = i + 1 // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/patterns/for_final_variable.dart:56:22: Error: Variable patterns in declaration context can't specify 'var' or 'final' keyword. |
| // Try removing the keyword. |
| // for (var (int i, final String s) in [(1, 'a'), (2, 'b'), (3, 'c')]) |
| // ^^^^^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| static method testFor() → dynamic { |
| for (final core::int i = 0; i.{core::num::<}(3){(core::num) → core::bool}; invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:6:32: Error: Can't assign to the final variable 'i'. |
| for (final int i = 0; i < 3; i = i + 1) { |
| ^") { |
| core::print(i); |
| } |
| { |
| final hoisted core::int i; |
| { |
| final synthesized dynamic #0#0 = 0; |
| if(!(#0#0{core::int} is core::int && (let final core::int #t1 = i = #0#0{core::int} in true))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| final core::int #t2 = i; |
| for (final core::int i = #t2; i.{core::num::<}(3){(core::num) → core::bool}; invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:9:34: Error: Can't assign to the final variable 'i'. |
| for (final (int i) = 0; i < 3; i = i + 1) { |
| ^") { |
| core::print(i); |
| } |
| } |
| { |
| final hoisted core::int i; |
| hoisted core::String s; |
| { |
| final synthesized dynamic #1#0 = (0, ""); |
| function ##1#1#initializer() → core::int |
| return (#1#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #1#1 = ##1#1#initializer(){() → core::int}; |
| function ##1#2#initializer() → core::String |
| return (#1#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #1#2 = ##1#2#initializer(){() → core::String}; |
| if(!(#1#1 is core::int && (let final core::int #t3 = i = #1#1 in true) && (#1#2 is core::String && (let final core::String #t4 = s = #1#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| final core::int #t5 = i; |
| final core::String #t6 = s; |
| for (core::int i = #t5, core::String s = #t6; i.{core::num::<}(3){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) { |
| core::print(i); |
| } |
| } |
| { |
| hoisted core::int i; |
| final hoisted core::String s; |
| { |
| final synthesized dynamic #2#0 = (0, ""); |
| function ##2#1#initializer() → core::int |
| return (#2#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #2#1 = ##2#1#initializer(){() → core::int}; |
| function ##2#2#initializer() → core::String |
| return (#2#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #2#2 = ##2#2#initializer(){() → core::String}; |
| if(!(#2#1 is core::int && (let final core::int #t7 = i = #2#1 in true) && (#2#2 is core::String && (let final core::String #t8 = s = #2#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| final core::int #t9 = i; |
| final core::String #t10 = s; |
| for (core::int i = #t9, core::String s = #t10; i.{core::num::<}(3){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) { |
| core::print(i); |
| } |
| } |
| core::List<core::int> l1 = block { |
| final core::List<core::int> #t11 = core::_GrowableList::•<core::int>(0); |
| for (final core::int i = 0; i.{core::num::<}(3){(core::num) → core::bool}; invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:19:34: Error: Can't assign to the final variable 'i'. |
| for (final int i = 0; i < 3; i = i + 1) i, // Error |
| ^") |
| #t11.{core::List::add}{Invariant}(i){(core::int) → void}; |
| } =>#t11; |
| core::List<core::int> l2 = block { |
| final core::List<core::int> #t12 = core::_GrowableList::•<core::int>(0); |
| final hoisted core::int i; |
| { |
| final synthesized dynamic #3#0 = 0; |
| if(!(#3#0{core::int} is core::int && (let final core::int #t13 = i = #3#0{core::int} in true))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| final core::int #t14 = i; |
| for (final core::int i = #t14; i.{core::num::<}(3){(core::num) → core::bool}; invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:22:36: Error: Can't assign to the final variable 'i'. |
| for (final (int i) = 0; i < 3; i = i + 1) i, // Error |
| ^") |
| #t12.{core::List::add}{Invariant}(i){(core::int) → void}; |
| } =>#t12; |
| core::List<core::int> l3 = block { |
| final core::List<core::int> #t15 = core::_GrowableList::•<core::int>(0); |
| final hoisted core::int i; |
| hoisted core::String s; |
| { |
| final synthesized dynamic #4#0 = (0, ""); |
| function ##4#1#initializer() → core::int |
| return (#4#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #4#1 = ##4#1#initializer(){() → core::int}; |
| function ##4#2#initializer() → core::String |
| return (#4#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #4#2 = ##4#2#initializer(){() → core::String}; |
| if(!(#4#1 is core::int && (let final core::int #t16 = i = #4#1 in true) && (#4#2 is core::String && (let final core::String #t17 = s = #4#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| final core::int #t18 = i; |
| final core::String #t19 = s; |
| for (core::int i = #t18, core::String s = #t19; i.{core::num::<}(3){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) |
| #t15.{core::List::add}{Invariant}(i){(core::int) → void}; |
| } =>#t15; |
| core::List<core::int> l4 = block { |
| final core::List<core::int> #t20 = core::_GrowableList::•<core::int>(0); |
| hoisted core::int i; |
| final hoisted core::String s; |
| { |
| final synthesized dynamic #5#0 = (0, ""); |
| function ##5#1#initializer() → core::int |
| return (#5#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #5#1 = ##5#1#initializer(){() → core::int}; |
| function ##5#2#initializer() → core::String |
| return (#5#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #5#2 = ##5#2#initializer(){() → core::String}; |
| if(!(#5#1 is core::int && (let final core::int #t21 = i = #5#1 in true) && (#5#2 is core::String && (let final core::String #t22 = s = #5#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| final core::int #t23 = i; |
| final core::String #t24 = s; |
| for (core::int i = #t23, core::String s = #t24; i.{core::num::<}(3){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) |
| #t20.{core::List::add}{Invariant}(i){(core::int) → void}; |
| } =>#t20; |
| } |
| static method testForIn() → dynamic { |
| { |
| synthesized core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final core::int i = :sync-for-iterator.{core::Iterator::current}{core::int}; |
| { |
| invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:34:5: Error: Can't assign to the final variable 'i'. |
| i = i + 1; // Error |
| ^"; |
| } |
| } |
| } |
| { |
| synthesized core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final core::int #t25 = :sync-for-iterator.{core::Iterator::current}{core::int}; |
| { |
| final hoisted core::int i; |
| { |
| final synthesized dynamic #0#0 = #t25; |
| if(!(#0#0{core::int} is core::int && (let final core::int #t26 = i = #0#0{core::int} in true))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:37:5: Error: Can't assign to the final variable 'i'. |
| i = i + 1; // Error |
| ^"; |
| } |
| } |
| } |
| { |
| synthesized core::Iterator<(core::int, core::String)> :sync-for-iterator = core::_GrowableList::_literal3<(core::int, core::String)>((1, "a"), (2, "b"), (3, "c")).{core::Iterable::iterator}{core::Iterator<(core::int, core::String)>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final(core::int, core::String) #t27 = :sync-for-iterator.{core::Iterator::current}{(core::int, core::String)}; |
| { |
| final hoisted core::int i; |
| hoisted core::String s; |
| { |
| final synthesized dynamic #1#0 = #t27; |
| function ##1#1#initializer() → core::int |
| return (#1#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #1#1 = ##1#1#initializer(){() → core::int}; |
| function ##1#2#initializer() → core::String |
| return (#1#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #1#2 = ##1#2#initializer(){() → core::String}; |
| if(!(#1#1 is core::int && (let final core::int #t28 = i = #1#1 in true) && (#1#2 is core::String && (let final core::String #t29 = s = #1#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:40:5: Error: Can't assign to the final variable 'i'. |
| i = i + 1; // Error |
| ^"; |
| } |
| } |
| } |
| { |
| synthesized core::Iterator<(core::int, core::String)> :sync-for-iterator = core::_GrowableList::_literal3<(core::int, core::String)>((1, "a"), (2, "b"), (3, "c")).{core::Iterable::iterator}{core::Iterator<(core::int, core::String)>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final(core::int, core::String) #t30 = :sync-for-iterator.{core::Iterator::current}{(core::int, core::String)}; |
| { |
| hoisted core::int i; |
| final hoisted core::String s; |
| { |
| final synthesized dynamic #2#0 = #t30; |
| function ##2#1#initializer() → core::int |
| return (#2#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #2#1 = ##2#1#initializer(){() → core::int}; |
| function ##2#2#initializer() → core::String |
| return (#2#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #2#2 = ##2#2#initializer(){() → core::String}; |
| if(!(#2#1 is core::int && (let final core::int #t31 = i = #2#1 in true) && (#2#2 is core::String && (let final core::String #t32 = s = #2#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| i = i.{core::num::+}(1){(core::num) → core::int}; |
| } |
| } |
| } |
| core::List<dynamic> l1 = block { |
| final core::List<dynamic> #t33 = core::_GrowableList::•<dynamic>(0); |
| { |
| synthesized core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final core::int i = :sync-for-iterator.{core::Iterator::current}{core::int}; |
| #t33.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:46:36: Error: Can't assign to the final variable 'i'. |
| for (final int i in [1, 2, 3]) i = i + 1 // Error |
| ^"){(dynamic) → void}; |
| } |
| } |
| } =>#t33; |
| core::List<dynamic> l2 = block { |
| final core::List<dynamic> #t34 = core::_GrowableList::•<dynamic>(0); |
| { |
| synthesized core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final core::int #t35 = :sync-for-iterator.{core::Iterator::current}{core::int}; |
| { |
| final hoisted core::int i; |
| { |
| final synthesized dynamic #3#0 = #t35; |
| if(!(#3#0{core::int} is core::int && (let final core::int #t36 = i = #3#0{core::int} in true))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| #t34.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:49:38: Error: Can't assign to the final variable 'i'. |
| for (final (int i) in [1, 2, 3]) i = i + 1 // Error |
| ^"){(dynamic) → void}; |
| } |
| } |
| } |
| } =>#t34; |
| core::List<dynamic> l3 = block { |
| final core::List<dynamic> #t37 = core::_GrowableList::•<dynamic>(0); |
| { |
| synthesized core::Iterator<(core::int, core::String)> :sync-for-iterator = core::_GrowableList::_literal3<(core::int, core::String)>((1, "a"), (2, "b"), (3, "c")).{core::Iterable::iterator}{core::Iterator<(core::int, core::String)>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final(core::int, core::String) #t38 = :sync-for-iterator.{core::Iterator::current}{(core::int, core::String)}; |
| { |
| final hoisted core::int i; |
| hoisted core::String s; |
| { |
| final synthesized dynamic #4#0 = #t38; |
| function ##4#1#initializer() → core::int |
| return (#4#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #4#1 = ##4#1#initializer(){() → core::int}; |
| function ##4#2#initializer() → core::String |
| return (#4#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #4#2 = ##4#2#initializer(){() → core::String}; |
| if(!(#4#1 is core::int && (let final core::int #t39 = i = #4#1 in true) && (#4#2 is core::String && (let final core::String #t40 = s = #4#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| #t37.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/patterns/for_final_variable.dart:53:7: Error: Can't assign to the final variable 'i'. |
| i = i + 1 // Error |
| ^"){(dynamic) → void}; |
| } |
| } |
| } |
| } =>#t37; |
| core::List<core::int> l4 = block { |
| final core::List<core::int> #t41 = core::_GrowableList::•<core::int>(0); |
| { |
| synthesized core::Iterator<(core::int, core::String)> :sync-for-iterator = core::_GrowableList::_literal3<(core::int, core::String)>((1, "a"), (2, "b"), (3, "c")).{core::Iterable::iterator}{core::Iterator<(core::int, core::String)>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final(core::int, core::String) #t42 = :sync-for-iterator.{core::Iterator::current}{(core::int, core::String)}; |
| { |
| hoisted core::int i; |
| final hoisted core::String s; |
| { |
| final synthesized dynamic #5#0 = #t42; |
| function ##5#1#initializer() → core::int |
| return (#5#0 as{Unchecked} (core::int, core::String)).$1{core::int}; |
| late final synthesized core::int #5#1 = ##5#1#initializer(){() → core::int}; |
| function ##5#2#initializer() → core::String |
| return (#5#0 as{Unchecked} (core::int, core::String)).$2{core::String}; |
| late final synthesized core::String #5#2 = ##5#2#initializer(){() → core::String}; |
| if(!(#5#1 is core::int && (let final core::int #t43 = i = #5#1 in true) && (#5#2 is core::String && (let final core::String #t44 = s = #5#2 in true)))) |
| throw new core::StateError::•("Pattern matching error"); |
| } |
| #t41.{core::List::add}{Invariant}(i = i.{core::num::+}(1){(core::num) → core::int}){(core::int) → void}; |
| } |
| } |
| } |
| } =>#t41; |
| } |
| |
| |
| Extra constant evaluation status: |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:12:38 -> RecordConstant(const (0, "")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:15:38 -> RecordConstant(const (0, "")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:25:40 -> RecordConstant(const (0, "")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:28:40 -> RecordConstant(const (0, "")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:39:40 -> RecordConstant(const (1, "a")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:39:50 -> RecordConstant(const (2, "b")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:39:60 -> RecordConstant(const (3, "c")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:42:40 -> RecordConstant(const (1, "a")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:42:50 -> RecordConstant(const (2, "b")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:42:60 -> RecordConstant(const (3, "c")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:52:42 -> RecordConstant(const (1, "a")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:52:52 -> RecordConstant(const (2, "b")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:52:62 -> RecordConstant(const (3, "c")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:56:42 -> RecordConstant(const (1, "a")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:56:52 -> RecordConstant(const (2, "b")) |
| Evaluated: RecordLiteral @ org-dartlang-testcase:///for_final_variable.dart:56:62 -> RecordConstant(const (3, "c")) |
| Extra constant evaluation: evaluated: 404, effectively constant: 16 |