| // Copyright (c) 2017, 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 |
| /*@testedFeatures=inference*/ |
| library test; |
| |
| test1() { |
| var /*@ type=Map<int*, String*>* */ x = /*@ typeArgs=int*, String* */ {1: 'x', 2: 'y'}; |
| x /*@target=Map.[]=*/ [3] = 'z'; |
| x /*@target=Map.[]=*/ [ |
| /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w'; |
| x /*@target=Map.[]=*/ [ |
| /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u'; |
| x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42; |
| Map<num, String> y = x; |
| } |
| |
| test2() { |
| var /*@ type=Map<num*, Pattern*>* */ x = /*@ typeArgs=num*, Pattern* */ { |
| 1: 'x', |
| 2: 'y', |
| 3.0: new RegExp('.') |
| }; |
| x /*@target=Map.[]=*/ [3] = 'z'; |
| x /*@target=Map.[]=*/ [ |
| /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w'; |
| x /*@target=Map.[]=*/ [4.0] = 'u'; |
| x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42; |
| Pattern p = null; |
| x /*@target=Map.[]=*/ [2] = p; |
| Map<int, String> y = /*info:ASSIGNMENT_CAST*/ x; |
| } |
| |
| main() {} |