Chromium Code Reviews| Index: tests/lib/mirrors/redirecting_factory_different_type_test.dart |
| diff --git a/tests/lib/mirrors/redirecting_factory_different_type_test.dart b/tests/lib/mirrors/redirecting_factory_different_type_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b82ce6d8a0d0fe150b0810f241e226a0898c38c5 |
| --- /dev/null |
| +++ b/tests/lib/mirrors/redirecting_factory_different_type_test.dart |
| @@ -0,0 +1,29 @@ |
| +// Copyright (c) 2013, 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 mirror_test; |
| + |
| +@MirrorsUsed(targets: "mirror_test") |
| +import 'dart:mirrors'; |
| + |
| +import 'package:expect/expect.dart'; |
| + |
| +class A { |
| + factory A(String x) = B; |
|
ahe
2014/07/27 09:43:31
As far as I understood the specification, this is
floitsch
2014/08/08 22:46:36
I try to avoid too many mirrors-test, since they a
|
| + A._(); |
| +} |
| + |
| +class B extends A { |
| + var x; |
| + B(int x) : super._(), this.x = x; |
| +} |
| + |
| +main() { |
| + var cm = reflectClass(A); |
| + // The type-annotation in A's constructor must be ignored. |
| + var b = cm.newInstance(const Symbol(''), [499]).reflectee; |
| + Expect.equals(499, b.x); |
| + Expect.throws(() => cm.newInstance(const Symbol(''), ["str"]), |
| + (e) => e is TypeError); |
| +} |