Files
sdk/tests/language_2/generic/recursive_generic_test.dart
T
Robert Nystrom fc1b1ecc71 Move files under language_2 into subdirectories.
Change-Id: Idbcc965a27e9ffeedf5e0a1068b019de4193070f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127745
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-12-11 19:18:00 +00:00

36 lines
772 B
Dart

// Copyright (c) 2016, 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";
abstract class S<T extends S<T>> {
m() => 123;
get S_T => T;
}
class C<T extends C<T>> extends S<C<T>> {
m() => 456;
get C_T => T;
}
class D extends C<D> {}
main() {
regress31434();
Expect.equals(new C<D>().m(), 456);
Expect.equals(new C<D>().C_T, D);
Expect.equals(new C<D>().S_T.toString(), 'C<D>');
}
class F<L, R> {}
class E<L, R> extends F<E<L, Object>, R> {}
regress31434() {
type<T>() => T;
dynamic e = new E<int, String>();
Expect.equals(e.runtimeType, type<E<int, String>>());
}