blob: df07228e4873280dc42c39fb853a220239ec76ce [file] [log] [blame]
// Copyright (c) 2018, 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.
/// @assertion It is a static error when the collection is a map and the key type
/// of any of the body elements may not be assigned to the map's key type.
///
/// @description Checks that it is a static error when the collection is a map
/// and the key type of any of the body elements may not be assigned to the map's
/// key type.
/// @author sgrekhov@unipro.ru
main() {
<int, int>{if (true) "not int": 1};
// ^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.MAP_KEY_TYPE_NOT_ASSIGNABLE
// [cfe] A value of type 'String' can't be assigned to a variable of type 'int'.
Map<int, int> m1 = {if (true) "not int": 1};
// ^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.MAP_KEY_TYPE_NOT_ASSIGNABLE
// [cfe] A value of type 'String' can't be assigned to a variable of type 'int'.
const <int, int>{if (true) "not int": 1};
// ^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.MAP_KEY_TYPE_NOT_ASSIGNABLE
// [cfe] A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (var i in []) "not int": 1};
// ^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.MAP_KEY_TYPE_NOT_ASSIGNABLE
// [cfe] A value of type 'String' can't be assigned to a variable of type 'int'.
Map<int, int> m2 = {for (var i in []) "not int": 1};
// ^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.MAP_KEY_TYPE_NOT_ASSIGNABLE
// [cfe] A value of type 'String' can't be assigned to a variable of type 'int'.
}