blob: cd525bb174a07293760e178b1c88f9fd5abd19f6 [file] [log] [blame]
// 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).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).function;
Expect.equals(true, mm.returnType is TypeMirror);
Expect.equals(#dynamic, mm.returnType.simpleName);
mm = reflect(dynamicFunc2).function;
Expect.equals(true, mm.returnType is TypeMirror);
Expect.equals(#dynamic, mm.returnType.simpleName);
mm = reflect(voidFunc).function;
Expect.equals(true, mm.returnType is TypeMirror);
Expect.equals(const Symbol("void"), mm.returnType.simpleName);
ClassMirror cm = reflectClass(C);
mm = cm.members[#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);
}