Chromium Code Reviews| Index: tests/lib/mirrors/method_mirror_returntype_test.dart |
| diff --git a/tests/lib/mirrors/method_mirror_returntype_test.dart b/tests/lib/mirrors/method_mirror_returntype_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8057c4991cb7185d868d798f0bfe6424c5f5c6ed |
| --- /dev/null |
| +++ b/tests/lib/mirrors/method_mirror_returntype_test.dart |
| @@ -0,0 +1,51 @@ |
| +// 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"; |
| + |
| +_n(symbol) => MirrorSystem.getName(symbol); |
| + |
| +void voidFunc() {} |
| + |
| +dynamicFunc1() {} |
| + |
| +dynamic dynamicFunc2() {} |
| + |
| +int intFunc() => 0; |
| + |
| +class C<E> { |
| + E getE(E v) => v; |
| +} |
| + |
| +main() { |
| + MethodMirror mm; |
| + |
| + mm = reflect(intFunc).function; |
| + Expect.equals(true, mm.returnType is TypeMirror); |
| + Expect.equals("int", _n(mm.returnType.simpleName)); |
|
ahe
2013/07/20 16:27:41
I would prefer if you used const Symbol('int') ins
|
| + Expect.equals(true, mm.returnType.owner is LibraryMirror); |
| + |
| + mm = reflect(dynamicFunc1).function; |
| + Expect.equals(true, mm.returnType is TypeMirror); |
| + Expect.equals("dynamic", _n(mm.returnType.simpleName)); |
| + |
| + mm = reflect(dynamicFunc2).function; |
| + Expect.equals(true, mm.returnType is TypeMirror); |
| + Expect.equals("dynamic", _n(mm.returnType.simpleName)); |
| + |
| + mm = reflect(voidFunc).function; |
| + Expect.equals(true, mm.returnType is TypeMirror); |
| + Expect.equals("void", _n(mm.returnType.simpleName)); |
| + |
| + ClassMirror cm = reflectClass(C); |
| + mm = cm.members[const Symbol("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", _n(mm.owner.simpleName)); |
| +} |