| // 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. |
| |
| // Tests syntax edge cases. |
| import 'package:expect/expect.dart'; |
| |
| void main() { |
| // Trailing comma. |
| Expect.listEquals( |
| [1, 2], |
| [ |
| ...[1, 2], |
| ], |
| ); |
| Expect.mapEquals( |
| {1: 1, 2: 2}, |
| { |
| ...{1: 1, 2: 2}, |
| }, |
| ); |
| Expect.setEquals( |
| {1, 2}, |
| { |
| ...{1, 2}, |
| }, |
| ); |
| |
| // Precedence. |
| Expect.listEquals( |
| [1, 2, 3], |
| [ |
| 1, |
| ...true ? [2] : [], |
| 3, |
| ], |
| ); |
| Expect.listEquals([1, 3], [1, ...?true ? null : [], 3]); |
| |
| var a = [0]; |
| Expect.listEquals( |
| [1, 2, 3], |
| [ |
| 1, |
| ...a = [2], |
| 3, |
| ], |
| ); |
| var nullableA = [0] as List<int>?; |
| Expect.listEquals([1, 3], [1, ...?nullableA = null, 3]); |
| |
| var b = [2]; |
| Expect.listEquals([1, 2, 3, 4], [1, ...b..add(3), 4]); |
| var nullableB = [2] as List<int>?; |
| Expect.listEquals([1, 2, 3, 4], [1, ...?nullableB?..add(3), 4]); |
| } |