blob: 6f56104d5e96c759b31efbddfaa1064a29e4e79c [file] [log] [blame]
// 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() {
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>>());