| Index: tests/language/factory_type_parameter_test.dart
|
| ===================================================================
|
| --- tests/language/factory_type_parameter_test.dart (revision 0)
|
| +++ tests/language/factory_type_parameter_test.dart (revision 0)
|
| @@ -0,0 +1,42 @@
|
| +// Copyright (c) 2012, 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.
|
| +
|
| +class A<T> {
|
| + factory A.factory() {
|
| + return new B<Set>();
|
| + }
|
| +
|
| + A();
|
| +
|
| + build() {
|
| + return new A<T>();
|
| + }
|
| +}
|
| +
|
| +class B<T> extends A<T> {
|
| + B();
|
| +
|
| + build() {
|
| + return new B<T>();
|
| + }
|
| +}
|
| +
|
| +main() {
|
| + Expect.isTrue(new A<List>() is A<List>);
|
| + Expect.isTrue(new A<List>.factory() is B<Set>);
|
| +
|
| + // Check that we don't always return true for is checks with
|
| + // generics.
|
| + Expect.isFalse(new A<List>() is A<Set>);
|
| + Expect.isFalse(new A<List>.factory() is B<List>);
|
| +
|
| + Expect.isTrue(new A<List>().build() is A<List>);
|
| + Expect.isFalse(new A<List>().build() is A<Set>);
|
| +
|
| + Expect.isTrue(new A<List>.factory().build() is B<Set>);
|
| + Expect.isFalse(new A<List>.factory().build() is B<List>);
|
| +
|
| + Expect.isTrue(new B<List>().build() is B<List>);
|
| + Expect.isFalse(new B<List>().build() is B<Set>);
|
| +}
|
|
|