blob: 071f777c84561556ee77872f25f218064403dae4 [file] [log] [blame]
test1(dynamic x) {
for (var [int y] in x) {
if (y % 10 == 0) {
return y;
}
}
return -1;
}
test2(Iterable<List<String>> x) {
for (var [..., String y] in x) {
if (y.startsWith("f")) {
return y;
}
}
return "";
}
test3(Iterable<dynamic> x) {
for (var [int y, ...] in x) {
return y;
}
return -1;
}
main() {
expectEquals(test1([[1], [2], [3]]), -1);
expectEquals(test1([[1], [2], [30]]), 30);
expectEquals(test2([["foo", "bar", "baz"], ["bar", "foo", "baz"], ["bar", "baz", "foo"]]), "foo");
expectEquals(test2([]), "");
expectThrows(() => test3([[null, 1, 2]]));
expectEquals(test3([]), -1);
}
expectEquals(x, y) {
if (x != y) {
throw "Expected '${x}' to be equal to '${y}'.";
}
}
expectThrows(void Function() f) {
bool hasThrown = true;
try {
f();
hasThrown = false;
} catch (e) {}
if (!hasThrown) {
throw "Expected function to throw.";
}
}