| // Copyright (c) 2011, 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 The value of a constant map literal const <K, V>{k1: e1...kn: en} |
| /// is an object m whose class implements the built-in class Map < K, V >. The |
| /// entries of m are ui : vi; i ∈ 1..n, where ui is the value of the |
| /// compile-time expression ki and vi is the value of the compile-time |
| /// expression ei. The value of a constant map literal const {k1: e1 ... kn: en} |
| /// is defined as the value of a constant map literal const |
| /// <dynamic, dynamic>{k1: e1 ... kn: en}. |
| /// @description Checks that the value of a constant map literal const |
| /// <String, V> {k1: e1... kn: en} is an object that implements interface |
| /// Map<String, V>. |
| /// @author msyabro |
| |
| import '../../../Utils/expect.dart'; |
| |
| class S { |
| const S(); |
| } |
| |
| main() { |
| Expect.isTrue(const <String, int>{"": 1} is Map<String, int>); |
| Expect.isTrue(const <String, String>{"": "string"} is Map<String, String>); |
| Expect.isTrue(const <String, bool>{"": true} is Map<String, bool>); |
| Expect.isTrue(const <String, S>{"": const S()} is Map<String, S>); |
| Expect.runtimeIsType<Map<String, int>>(const <String, int>{"": 1}); |
| Expect.runtimeIsType<Map<String, String>>(const <String, String>{"": "string"}); |
| Expect.runtimeIsType<Map<String, bool>>(const <String, bool>{"": true}); |
| Expect.runtimeIsType<Map<String, S>>(const <String, S>{"": const S()}); |
| } |