// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. test1(dynamic x) { var [int y] = x; return y; } test2(dynamic x) { var [String a, ..., String b] = x; return a + b; } main() { expectEquals(test1([0]), 0); expectThrows(() => test1([])); expectThrows(() => test1([0, 1, 2])); expectEquals(test2(["one", "two", "three", "four"]), "onefour"); expectThrows(() => test2(["one"])); expectThrows(() => test2("one")); expectThrows(() => test2(null)); } 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."; } }