blob: aa5cdeea525215e3e88fe89d6a1c28597df13410 [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.
/// Test of [ParameterMirror].
library test.parameter_test;
@MirrorsUsed(targets: 'test.parameter_test', override: '*')
import 'dart:mirrors';
import 'stringify.dart';
class B {
B();
B.foo(int x);
B.bar(int z, x);
}
main() {
var constructors = reflectClass(B).constructors;
expect('{B: Method(s(B) in s(B), constructor), '
'B.bar: Method(s(B.bar) in s(B), constructor), '
'B.foo: Method(s(B.foo) in s(B), constructor)}',
constructors);
var unnamedConstructor = constructors[new Symbol('B')];
expect('[]', unnamedConstructor.parameters);
expect('Class(s(B) in s(test.parameter_test), top-level)',
unnamedConstructor.returnType);
var fooConstructor = constructors[new Symbol('B.foo')];
expect('[Parameter(s(x) in s(B.foo),'
' type = Class(s(int) in s(dart.core), top-level))]',
fooConstructor.parameters);
expect('Class(s(B) in s(test.parameter_test), top-level)',
fooConstructor.returnType);
var barConstructor = constructors[new Symbol('B.bar')];
expect('[Parameter(s(z) in s(B.bar),'
' type = Class(s(int) in s(dart.core), top-level)), '
'Parameter(s(x) in s(B.bar),'
' type = Type(s(dynamic), top-level))]',
barConstructor.parameters);
expect('Class(s(B) in s(test.parameter_test), top-level)',
barConstructor.returnType);
print(constructors);
}