blob: 874c3475c5e55dd51c3a668820a52dfeefb411d4 [file] [log] [blame]
/*
* Copyright (c) 2019, 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 A map literal of the form [<K, V>{entry_1 ... entry_n}] is
* evaluated as follows:
*
* 1. Allocate a fresh instance [map] of a class that implements
* [LinkedHashMap<K, V>].
* ...
* 3. The result of the map literal expression is [map].
* @description Checks that instance of [LinkedHashMap<K, V>] is created for a
* map literal
* @author iarkh@unipro.ru
*/
// SharedOptions=--enable-experiment=constant-update-2018
import "dart:collection";
import "../../Utils/expect.dart";
main() {
Map map1 = {1: 1, 2: 2, 3: 3, 4: 4, 5: 5};
Map map2 = {};
Map map3 = null;
Map map4 = {1: "a", 2: "2", 3: "three", 4: "checkme"};
Expect.isTrue(<int, int>{...map1} is LinkedHashMap<int, int>);
Expect.isTrue(<int, Object>{...map1} is LinkedHashMap<int, Object>);
Expect.isTrue(<Object, Object>{...map1} is LinkedHashMap<Object, Object>);
Expect.isTrue(
<int, Object>{1: "a", 2: "b", ...map1} is LinkedHashMap<int, Object>);
Expect.isTrue(
<int, num>{1: 0, ...?map1, 14: 6, 9: 9} is LinkedHashMap<int, num>);
Expect.isTrue(<int, String>{...map2, 1: "123"} is LinkedHashMap<int, String>);
Expect.isTrue(<int, String>{...?map2} is LinkedHashMap<int, String>);
Expect.isTrue(<int, String>{...map2} is LinkedHashMap<int, String>);
Expect.isTrue(
<int, String>{...?map3, 1: "123"} is LinkedHashMap<int, String>);
Expect.isTrue(<int, String>{...?map3} is LinkedHashMap<int, String>);
Expect.isTrue({...map4} is LinkedHashMap<Object, Object>);
}