blob: dfc65b8cd913e9beacb698334246a942e6b2376d [file] [log] [blame]
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