blob: 2d653098ddcdaf3e50c52a10811b9c0390186f75 [file] [log] [blame]
// 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.
// Dart test for generic types.
// @dart = 2.9
import "package:expect/expect.dart";
abstract class GenericsTest<T, V> implements Map<int, int> {
static int myFunc(bool a, bool b) {
Expect.equals(true, a);
Expect.equals(false, b);
return 42;
}
static void testMain() {
int a = 1;
int b = 2;
int c = 3;
int d = 4;
Expect.equals(true, a < b);
Expect.equals(42, myFunc(a < b, c > d));
Map<int, int> e;
GenericsTest<int, GenericsTest<int, int>> f;
e = new Map();
takesMapMethod(e);
Expect.equals(2, e[0]);
Map h = new Map<int, int>();
}
static void takesMapMethod(Map<int, int> m) {
m[0] = 2;
}
Map<int, int> returnMap() {
return null;
}
}
class LongGeneric<A, B, C> {}
class LongerGeneric<A, B, C, D, E, F, G, H, I, J> {
void func() {
LongGeneric<String, A, LongGeneric<C, List<E>, Map<G, Map<I, J>>>> id;
LongGeneric<num, Map<int, int>,
LongGeneric<C, List<E>, Map<G, LongGeneric<I, J, List<A>>>>> id2;
}
}
main() {
GenericsTest.testMain();
}