Index: test/codegen/lib/mirrors/typedef_reflected_type_test.dart |
diff --git a/test/codegen/lib/mirrors/typedef_reflected_type_test.dart b/test/codegen/lib/mirrors/typedef_reflected_type_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9286a8857b2db695ebdcc77e9f522daebfeb2e5d |
--- /dev/null |
+++ b/test/codegen/lib/mirrors/typedef_reflected_type_test.dart |
@@ -0,0 +1,30 @@ |
+// Copyright (c) 2014, 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 test; |
+ |
+import 'package:expect/expect.dart'; |
+import 'stringify.dart'; |
+ |
+@MirrorsUsed(targets: "test") |
+import 'dart:mirrors'; |
+ |
+typedef int Foo<T>(String x); |
+typedef int Bar(); |
+ |
+class C { |
+ Bar fun(Foo<int> x) => null; |
+} |
+ |
+main() { |
+ var m = reflectClass(C).declarations[#fun]; |
+ |
+ Expect.equals(Bar, m.returnType.reflectedType); |
+ Expect.equals("Foo<int>", m.parameters[0].type.reflectedType.toString()); /// 01: ok |
+ Expect.equals(int, m.parameters[0].type.typeArguments[0].reflectedType); /// 01: continued |
+ Expect.isFalse(m.parameters[0].type.isOriginalDeclaration); /// 01: continued |
+ |
+ var lib = currentMirrorSystem().findLibrary(#test); |
+ Expect.isTrue(lib.declarations[#Foo].isOriginalDeclaration); |
+} |