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