dart-sdk/tests/corelib_2/map_keys2_test.dart
Jennifer Messerly 3a79c35f3c optimize maps/sets in DDC, fixes #29865
- 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>
2017-10-04 19:04:27 +00:00

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>);
}