mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 02:50:20 +00:00
2dcd56ef43
There are far too many files here to review everyone carefully. Spot checking most of the diffs look good as test code is generally written with less care than application code so lots of ugly formatting get through. If people notice files where the automated formatting bothers them feel free to comment indicating file names and I'll move spaces within comments to make the formatting cleaner and use comments to force block formatting as I have done for other case where formatting looked bad. BUG= R=efortuna@google.com Review-Url: https://codereview.chromium.org/2771453003 .
52 lines
1.1 KiB
Dart
52 lines
1.1 KiB
Dart
// Copyright (c) 2013, 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";
|
|
|
|
class M<T> {
|
|
t() {
|
|
return T;
|
|
}
|
|
}
|
|
|
|
class A<U> = Object with M<List<U>>;
|
|
|
|
class B0 = Object with A<Set<bool>>;
|
|
|
|
class B1 = Object with A<Set<int>>;
|
|
|
|
class C0 extends B0 {}
|
|
|
|
class C1 extends B1 {}
|
|
|
|
class A2<K, V> = Object with M<Map<K, V>>;
|
|
|
|
class B2<V> = Object with A2<Set<V>, List<V>>;
|
|
|
|
class B3<K, V> = Object with A2<Set<K>, List<V>>;
|
|
|
|
class C2<T> extends B2<T> {}
|
|
|
|
class C3<T> extends B3<T, int> {}
|
|
|
|
class N {
|
|
q() {
|
|
return 42;
|
|
}
|
|
}
|
|
|
|
class O<U> = Object with N;
|
|
|
|
class P<K, V> = Object with O<V>;
|
|
|
|
class Q<K, V> extends P<K, V> {}
|
|
|
|
main() {
|
|
Expect.equals("List<Set<bool>>", new C0().t().toString());
|
|
Expect.equals("List<Set<int>>", new C1().t().toString());
|
|
Expect.equals("Map<Set<bool>, List<bool>>", new C2<bool>().t().toString());
|
|
Expect.equals("Map<Set<bool>, List<int>>", new C3<bool>().t().toString());
|
|
Expect.equals(42, new Q<bool, int>().q());
|
|
}
|