Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(976)

Unified Diff: test/codegen/lib/mirrors/method_mirror_returntype_test.dart

Issue 2265533002: Add mirrors tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/codegen/lib/mirrors/method_mirror_returntype_test.dart
diff --git a/test/codegen/lib/mirrors/method_mirror_returntype_test.dart b/test/codegen/lib/mirrors/method_mirror_returntype_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..42ccda287ff985cc593a7c66fa8e1f6042b3bd1d
--- /dev/null
+++ b/test/codegen/lib/mirrors/method_mirror_returntype_test.dart
@@ -0,0 +1,49 @@
+// 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.
+
+import "dart:mirrors";
+
+import "package:expect/expect.dart";
+
+void voidFunc() {}
+
+dynamicFunc1() {}
+
+dynamic dynamicFunc2() {}
+
+int intFunc() => 0;
+
+class C<E> {
+ E getE(E v) => v;
+}
+
+main() {
+ MethodMirror mm;
+
+ mm = (reflect(intFunc) as ClosureMirror).function;
+ Expect.equals(true, mm.returnType is TypeMirror);
+ Expect.equals(#int, mm.returnType.simpleName);
+ Expect.equals(true, mm.returnType.owner is LibraryMirror);
+
+ mm = (reflect(dynamicFunc1) as ClosureMirror).function;
+ Expect.equals(true, mm.returnType is TypeMirror);
+ Expect.equals(#dynamic, mm.returnType.simpleName);
+
+ mm = (reflect(dynamicFunc2) as ClosureMirror).function;
+ Expect.equals(true, mm.returnType is TypeMirror);
+ Expect.equals(#dynamic, mm.returnType.simpleName);
+
+ mm = (reflect(voidFunc) as ClosureMirror).function;
+ Expect.equals(true, mm.returnType is TypeMirror);
+ Expect.equals(const Symbol("void"), mm.returnType.simpleName);
+
+ ClassMirror cm = reflectClass(C);
+ mm = cm.declarations[#getE];
+ Expect.equals(true, mm.returnType is TypeMirror);
+ // The spec for this is ambigious and needs to be updated before it is clear
+ // what has to be returned.
+ //Expect.equals("E", _n(mm.returnType.simpleName));
+ Expect.equals(true, mm.owner is ClassMirror);
+ Expect.equals(#C, mm.owner.simpleName);
+}

Powered by Google App Engine
This is Rietveld 408576698