| // 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. |
| |
| // @dart = 2.9 |
| |
| /// @assertion Finally, we define inference on a setOrMapLiteral collection as |
| /// follows: |
| /// ... |
| /// Otherwise, collection is still ambiguous, the downwards context for the |
| /// elements of collection is ?, and the disambiguation is done using the |
| /// immediate elements of collection as follows: |
| /// ... |
| /// Otherwise, the literal cannot be disambiguated and it is a compile-time error. |
| /// |
| /// @description Checks that if collection is still ambiguous it is a |
| /// compile-time error |
| /// @author sgrekhov@unipro.ru |
| |
| |
| class C<T> { |
| test(T t) { |
| var v = {...t}; //# 01: compile-time error |
| } |
| } |
| |
| main() { |
| var iterable = [1, 2]; |
| var map = {1: 2}; |
| var ambiguous1 = {...iterable, ...map}; //# 02: compile-time error |
| |
| dynamic dyn; |
| var ambiguous2 = {...dyn}; //# 03: compile-time error |
| } |