Files
sdk/tests/language_2/spread_collections/runtime_error_test.dart
T
Kevin Millikin 64b0ce5b58 Remove UI as code experimental flags from our tests
The features control-flow-collections and spread-collections have been
shipped and it is no longer necessary for tests to explicitly opt into
them.

Change-Id: I074b91d12e4e485ee4a64147947bb1113899ecdc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104780
Auto-Submit: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-06-06 13:17:49 +00:00

35 lines
1.3 KiB
Dart

// Copyright (c) 2019, 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.
import 'package:expect/expect.dart';
// Typed as dynamic to also test spreading a value of type dynamic.
final dynamic list = [1, 2, 3, 4];
final dynamic map = {1: 1, 2: 2, 3: 3, 4: 4};
final dynamic set = {1, 2, 3, 4};
void main() {
dynamic nonIterable = 3;
Expect.throwsTypeError(() => <int>[...nonIterable]);
Expect.throwsTypeError(() => <int>{...nonIterable});
dynamic nonMap = 3;
Expect.throwsTypeError(() => <int, int>{...nonMap});
dynamic wrongIterableType = <String>["s"];
Expect.throwsTypeError(() => <int>[...wrongIterableType]);
Expect.throwsTypeError(() => <int>{...wrongIterableType});
dynamic wrongKeyType = <String, int>{"s": 1};
dynamic wrongValueType = <int, String>{1: "s"};
Expect.throwsTypeError(() => <int, int>{...wrongKeyType});
Expect.throwsTypeError(() => <int, int>{...wrongValueType});
// Mismatched collection types.
Expect.throwsTypeError(() => <int>[...map]);
Expect.throwsTypeError(() => <int, int>{...list});
Expect.throwsTypeError(() => <int, int>{...set});
Expect.throwsTypeError(() => <int>{...map});
}