| Index: pkg/kernel/testcases/reify/factories_test.dart
|
| diff --git a/pkg/kernel/testcases/reify/factories_test.dart b/pkg/kernel/testcases/reify/factories_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..805df85de6904d3c8c710a215750e566dc090953
|
| --- /dev/null
|
| +++ b/pkg/kernel/testcases/reify/factories_test.dart
|
| @@ -0,0 +1,40 @@
|
| +// 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.
|
| +
|
| +library factories_test;
|
| +
|
| +import 'test_base.dart';
|
| +
|
| +class A<T> {
|
| + factory A() {
|
| + return new B<T>();
|
| + }
|
| +
|
| + factory A.named() {
|
| + return new A<T>.internal();
|
| + }
|
| +
|
| + factory A.forward() = A<T>.internal;
|
| +
|
| + A.internal();
|
| +}
|
| +
|
| +class B<T> extends A<T> {
|
| + B() : super.internal();
|
| +}
|
| +
|
| +class X {}
|
| +
|
| +class Y {}
|
| +
|
| +main() {
|
| + expectTrue(new A<X>.named() is A<X>);
|
| + expectTrue(new A<X>.named() is! A<Y>);
|
| + expectTrue(new A<X>.forward() is A<X>);
|
| + expectTrue(new A<X>.forward() is! A<Y>);
|
| + expectTrue(new A<X>() is B<X>);
|
| + expectTrue(new A<X>() is! B<Y>);
|
| + expectTrue(new A<X>.named() is! B<X>);
|
| + expectTrue(new A<X>.forward() is! B<X>);
|
| +}
|
|
|