Index: pkg/dev_compiler/tool/input_sdk/lib/core/map.dart |
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/core/map.dart b/pkg/dev_compiler/tool/input_sdk/lib/core/map.dart |
deleted file mode 100644 |
index ac4581f7c004779f8a5592110a3a52f158ca4156..0000000000000000000000000000000000000000 |
--- a/pkg/dev_compiler/tool/input_sdk/lib/core/map.dart |
+++ /dev/null |
@@ -1,270 +0,0 @@ |
-// 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. |
- |
-part of dart.core; |
- |
-/** |
- * An collection of key-value pairs, from which you retrieve a value |
- * using its associated key. |
- * |
- * There is a finite number of keys in the map, |
- * and each key has exactly one value associated with it. |
- * |
- * Maps, and their keys and values, can be iterated. |
- * The order of iteration is defined by the individual type of map. |
- * Examples: |
- * |
- * * The plain [HashMap] is unordered (no order is guaranteed), |
- * * the [LinkedHashMap] iterates in key insertion order, |
- * * and a sorted map like [SplayTreeMap] iterates the keys in sorted order. |
- * |
- * It is generally not allowed to modify the map (add or remove keys) while |
- * an operation is being performed on the map, for example in functions called |
- * during a [forEach] or [putIfAbsent] call. |
- * Modifying the map while iterating the keys or values |
- * may also break the iteration. |
- */ |
-abstract class Map<K, V> { |
- /** |
- * Creates a Map instance with the default implementation, [LinkedHashMap]. |
- * |
- * This constructor is equivalent to the non-const map literal `<K,V>{}`. |
- * |
- * A `LinkedHashMap` requires the keys to implement compatible |
- * `operator==` and `hashCode`, and it allows null as a key. |
- * It iterates in key insertion order. |
- */ |
- external factory Map(); |
- |
- /** |
- * Creates a [LinkedHashMap] instance that contains all key-value pairs of |
- * [other]. |
- * |
- * The keys must all be assignable to [K] and the values to [V]. |
- * The [other] map itself can have any type. |
- * |
- * A `LinkedHashMap` requires the keys to implement compatible |
- * `operator==` and `hashCode`, and it allows `null` as a key. |
- * It iterates in key insertion order. |
- */ |
- factory Map.from(Map other) = LinkedHashMap<K, V>.from; |
- |
- /** |
- * Creates an unmodifiable hash based map containing the entries of [other]. |
- * |
- * The keys must all be assignable to [K] and the values to [V]. |
- * The [other] map itself can have any type. |
- * |
- * The map requires the keys to implement compatible |
- * `operator==` and `hashCode`, and it allows `null` as a key. |
- * The created map iterates keys in a fixed order, |
- * preserving the order provided by [other]. |
- * |
- * The resulting map behaves like the result of [Map.from], |
- * except that the map returned by this constructor is not modifiable. |
- */ |
- external factory Map.unmodifiable(Map other); |
- |
- /** |
- * Creates an identity map with the default implementation, [LinkedHashMap]. |
- * |
- * The returned map allows `null` as a key. |
- * It iterates in key insertion order. |
- */ |
- factory Map.identity() = LinkedHashMap<K, V>.identity; |
- |
- /** |
- * Creates a Map instance in which the keys and values are computed from the |
- * [iterable]. |
- * |
- * The created map is a [LinkedHashMap]. |
- * A `LinkedHashMap` requires the keys to implement compatible |
- * `operator==` and `hashCode`, and it allows null as a key. |
- * It iterates in key insertion order. |
- * |
- * For each element of the [iterable] this constructor computes a key-value |
- * pair, by applying [key] and [value] respectively. |
- * |
- * The example below creates a new Map from a List. The keys of `map` are |
- * `list` values converted to strings, and the values of the `map` are the |
- * squares of the `list` values: |
- * |
- * List<int> list = [1, 2, 3]; |
- * Map<String, int> map = new Map.fromIterable(list, |
- * key: (item) => item.toString(), |
- * value: (item) => item * item)); |
- * |
- * map['1'] + map['2']; // 1 + 4 |
- * map['3'] - map['2']; // 9 - 4 |
- * |
- * If no values are specified for [key] and [value] the default is the |
- * identity function. |
- * |
- * In the following example, the keys and corresponding values of `map` |
- * are `list` values: |
- * |
- * map = new Map.fromIterable(list); |
- * map[1] + map[2]; // 1 + 2 |
- * map[3] - map[2]; // 3 - 2 |
- * |
- * The keys computed by the source [iterable] do not need to be unique. The |
- * last occurrence of a key will simply overwrite any previous value. |
- */ |
- factory Map.fromIterable(Iterable iterable, |
- {K key(element), V value(element)}) = LinkedHashMap<K, V>.fromIterable; |
- |
- /** |
- * Creates a Map instance associating the given [keys] to [values]. |
- * |
- * The created map is a [LinkedHashMap]. |
- * A `LinkedHashMap` requires the keys to implement compatible |
- * `operator==` and `hashCode`, and it allows null as a key. |
- * It iterates in key insertion order. |
- * |
- * This constructor iterates over [keys] and [values] and maps each element of |
- * [keys] to the corresponding element of [values]. |
- * |
- * List<String> letters = ['b', 'c']; |
- * List<String> words = ['bad', 'cat']; |
- * Map<String, String> map = new Map.fromIterables(letters, words); |
- * map['b'] + map['c']; // badcat |
- * |
- * If [keys] contains the same object multiple times, the last occurrence |
- * overwrites the previous value. |
- * |
- * The two [Iterable]s must have the same length. |
- */ |
- factory Map.fromIterables(Iterable<K> keys, Iterable<V> values) |
- = LinkedHashMap<K, V>.fromIterables; |
- |
- /** |
- * Returns true if this map contains the given [value]. |
- * |
- * Returns true if any of the values in the map are equal to `value` |
- * according to the `==` operator. |
- */ |
- bool containsValue(Object value); |
- |
- /** |
- * Returns true if this map contains the given [key]. |
- * |
- * Returns true if any of the keys in the map are equal to `key` |
- * according to the equality used by the map. |
- */ |
- bool containsKey(Object key); |
- |
- /** |
- * Returns the value for the given [key] or null if [key] is not in the map. |
- * |
- * Some maps allows keys to have `null` as a value, |
- * For those maps, a lookup using this operator does cannot be used to |
- * distinguish between a key not being in the map, and the key having a null |
- * value. |
- * Methods like [containsKey] or [putIfAbsent] can be use if the distinction |
- * is important. |
- */ |
- V operator [](Object key); |
- |
- /** |
- * Associates the [key] with the given [value]. |
- * |
- * If the key was already in the map, its associated value is changed. |
- * Otherwise the key-value pair is added to the map. |
- */ |
- void operator []=(K key, V value); |
- |
- /** |
- * Look up the value of [key], or add a new value if it isn't there. |
- * |
- * Returns the value associated to [key], if there is one. |
- * Otherwise calls [ifAbsent] to get a new value, associates [key] to |
- * that value, and then returns the new value. |
- * |
- * Map<String, int> scores = {'Bob': 36}; |
- * for (var key in ['Bob', 'Rohan', 'Sophena']) { |
- * scores.putIfAbsent(key, () => key.length); |
- * } |
- * scores['Bob']; // 36 |
- * scores['Rohan']; // 5 |
- * scores['Sophena']; // 7 |
- * |
- * Calling [ifAbsent] must not add or remove keys from the map. |
- */ |
- V putIfAbsent(K key, V ifAbsent()); |
- |
- /** |
- * Adds all key-value pairs of [other] to this map. |
- * |
- * If a key of [other] is already in this map, its value is overwritten. |
- * |
- * The operation is equivalent to doing `this[key] = value` for each key |
- * and associated value in other. It iterates over [other], which must |
- * therefore not change during the iteration. |
- */ |
- void addAll(Map<K, V> other); |
- |
- /** |
- * Removes [key] and its associated value, if present, from the map. |
- * |
- * Returns the value associated with `key` before it was removed. |
- * Returns `null` if `key` was not in the map. |
- * |
- * Note that values can be `null` and a returned `null` value doesn't |
- * always mean that the key was absent. |
- */ |
- V remove(Object key); |
- |
- /** |
- * Removes all pairs from the map. |
- * |
- * After this, the map is empty. |
- */ |
- void clear(); |
- |
- /** |
- * Applies [f] to each key-value pair of the map. |
- * |
- * Calling `f` must not add or remove keys from the map. |
- */ |
- void forEach(void f(K key, V value)); |
- |
- /** |
- * The keys of [this]. |
- * |
- * The returned iterable has efficient `length` and `contains` operations, |
- * based on [length] and [containsKey] of the map. |
- * |
- * The order of iteration is defined by the individual `Map` implementation, |
- * but must be consistent between changes to the map. |
- */ |
- Iterable<K> get keys; |
- |
- /** |
- * The values of [this]. |
- * |
- * The values are iterated in the order of their corresponding keys. |
- * This means that iterating [keys] and [values] in parallel will |
- * provided matching pairs of keys and values. |
- * |
- * The returned iterable has an efficient `length` method based on the |
- * [length] of the map. Its [Iterable.contains] method is based on |
- * `==` comparison. |
- */ |
- Iterable<V> get values; |
- |
- /** |
- * The number of key-value pairs in the map. |
- */ |
- int get length; |
- |
- /** |
- * Returns true if there is no key-value pair in the map. |
- */ |
- bool get isEmpty; |
- |
- /** |
- * Returns true if there is at least one key-value pair in the map. |
- */ |
- bool get isNotEmpty; |
-} |