| Index: pkg/kernel/testcases/reify/subclass_test.dart
|
| diff --git a/pkg/kernel/testcases/reify/subclass_test.dart b/pkg/kernel/testcases/reify/subclass_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5b5b6bc5a684f8843069e444a73c624a010dfb4a
|
| --- /dev/null
|
| +++ b/pkg/kernel/testcases/reify/subclass_test.dart
|
| @@ -0,0 +1,35 @@
|
| +// 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.md file.
|
| +
|
| +library superclass_test;
|
| +
|
| +import 'test_base.dart';
|
| +
|
| +class X {}
|
| +
|
| +class Y {}
|
| +
|
| +class R<T> {}
|
| +
|
| +class A<T> {
|
| + foo() => new R<T>();
|
| +}
|
| +
|
| +class B<T> extends A<T> {}
|
| +
|
| +class C<T> extends A<Y> {}
|
| +
|
| +class D<T> extends B<R<T>> {}
|
| +
|
| +main() {
|
| + expectTrue(new A<X>().foo() is R<X>);
|
| + expectTrue(new B<X>().foo() is R<X>);
|
| + expectTrue(new C<X>().foo() is R<Y>);
|
| + expectTrue(new D<X>().foo() is R<R<X>>);
|
| +
|
| + expectTrue(new A<X>().foo() is! R<Y>);
|
| + expectTrue(new B<X>().foo() is! R<Y>);
|
| + expectTrue(new C<X>().foo() is! R<X>);
|
| + expectTrue(new D<X>().foo() is! R<R<Y>>);
|
| +}
|
|
|