9f8a9dc9f4
I'm sure there's mistakes since I can't parse the tests, much less run them, but I did my best. Is there anything else you think we should add? I feel like the tests around inference are weak, but I don't know what else would help. Change-Id: If4b573acad4395310ad6fc3477861f8d28c16255 Reviewed-on: https://dart-review.googlesource.com/c/89085 Reviewed-by: Leaf Petersen <leafp@google.com>
75 lines
3.2 KiB
Dart
75 lines
3.2 KiB
Dart
// 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.
|
|
|
|
import 'dart:collection';
|
|
|
|
class ConstIterable extends IterableBase<int> {
|
|
const ConstIterable();
|
|
|
|
Iterator<int> get iterator => <int>[].iterator;
|
|
}
|
|
|
|
class ConstMap implements Map<int, String> {
|
|
const ConstMap();
|
|
|
|
Iterable<MapEntry<int, String>> get entries => const [];
|
|
|
|
bool get isEmpty => throw UnsupportedError("unsupported");
|
|
bool get isNotEmpty => throw UnsupportedError("unsupported");
|
|
Iterable<int> get keys => throw UnsupportedError("unsupported");
|
|
int get length => throw UnsupportedError("unsupported");
|
|
Iterable<String> get values => throw UnsupportedError("unsupported");
|
|
String operator [](Object key) => throw UnsupportedError("unsupported");
|
|
operator []=(int key, String value) => throw UnsupportedError("unsupported");
|
|
bool add(Object value) => throw UnsupportedError("unsupported");
|
|
void addAll(Map<int, String> map) => throw UnsupportedError("unsupported");
|
|
void addEntries(Iterable<MapEntry<int, String>> entries) =>
|
|
throw UnsupportedError("unsupported");
|
|
Map<RK, RV> cast<RK, RV>() => throw UnsupportedError("unsupported");
|
|
void clear() => throw UnsupportedError("unsupported");
|
|
bool containsKey(Object key) => throw UnsupportedError("unsupported");
|
|
bool containsValue(Object value) => throw UnsupportedError("unsupported");
|
|
void forEach(void Function(int key, String value) f) =>
|
|
throw UnsupportedError("unsupported");
|
|
Map<K2, V2> map<K2, V2>(MapEntry<K2, V2> Function(int key, String value) f) =>
|
|
throw UnsupportedError("unsupported");
|
|
String putIfAbsent(int key, String Function() ifAbsent) =>
|
|
throw UnsupportedError("unsupported");
|
|
String remove(Object key) => throw UnsupportedError("unsupported");
|
|
void removeWhere(bool Function(int key, String value) predicate) =>
|
|
throw UnsupportedError("unsupported");
|
|
String update(int key, String Function(String value) update,
|
|
{String Function() ifAbsent}) =>
|
|
throw UnsupportedError("unsupported");
|
|
void updateAll(String Function(int key, String value) update) =>
|
|
throw UnsupportedError("unsupported");
|
|
}
|
|
|
|
class CustomMap with MapMixin<int, String> {
|
|
Iterable<int> get keys => [];
|
|
String operator [](Object key) => "";
|
|
operator []=(int key, String value) {}
|
|
String remove(Object key) => throw UnsupportedError("unsupported");
|
|
void clear() => throw UnsupportedError("unsupported");
|
|
}
|
|
|
|
class CustomSet extends SetBase<int> {
|
|
bool add(int value) => throw UnsupportedError("unsupported");
|
|
bool contains(Object value) => throw UnsupportedError("unsupported");
|
|
Iterator<int> get iterator => <int>[].iterator;
|
|
int get length => 0;
|
|
int lookup(Object value) => throw UnsupportedError("unsupported");
|
|
bool remove(Object value) => throw UnsupportedError("unsupported");
|
|
Set<int> toSet() => this;
|
|
}
|
|
|
|
class Equality {
|
|
final int id;
|
|
final String name;
|
|
const Equality(this.id, this.name);
|
|
int get hashCode => id;
|
|
bool operator ==(Object other) => other is Equality && id == other.id;
|
|
String toString() => "$id:$name";
|
|
}
|