mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 11:18:49 +00:00
3a79c35f3c
- string/int keys use identity maps - construct the correct type rather than relying on factory constructors when possible - checks if key has identity semantics and use that when possible - avoid helper calls/casts/etc in implementations - use native ES6 Map/Set key order tracking - optimized constructor for map literals - fixes #30466, const maps are now canonicalized correctly Change-Id: Id44acf3d9bf8cb153a4755aa28df08fe91bfc633 Reviewed-on: https://dart-review.googlesource.com/8167 Reviewed-by: Vijay Menon <vsm@google.com>
35 lines
1.1 KiB
Dart
35 lines
1.1 KiB
Dart
// 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.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
main() {
|
|
var map1 = {"foo": 42, "bar": 499};
|
|
var map2 = {};
|
|
var map3 = const {"foo": 42, "bar": 499};
|
|
var map4 = const {};
|
|
var map5 = new Map<String, int>();
|
|
map5["foo"] = 43;
|
|
map5["bar"] = 500;
|
|
var map6 = new Map<String, bool>();
|
|
|
|
Expect.isTrue(map1.keys is Iterable<String>);
|
|
Expect.isFalse(map1.keys is Iterable<bool>);
|
|
|
|
Expect.isFalse(map2.keys is Iterable<String>);
|
|
Expect.isFalse(map2.keys is Iterable<bool>);
|
|
|
|
Expect.isTrue(map3.keys is Iterable<String>);
|
|
Expect.isFalse(map3.keys is Iterable<bool>);
|
|
|
|
Expect.isFalse(map4.keys is Iterable<String>);
|
|
Expect.isFalse(map4.keys is Iterable<bool>);
|
|
|
|
Expect.isTrue(map5.keys is Iterable<String>);
|
|
Expect.isFalse(map5.keys is Iterable<bool>);
|
|
|
|
Expect.isTrue(map6.keys is Iterable<String>);
|
|
Expect.isFalse(map6.keys is Iterable<bool>);
|
|
}
|