| Index: tests/lib/mirrors/parameter_test.dart
|
| diff --git a/tests/lib/mirrors/parameter_test.dart b/tests/lib/mirrors/parameter_test.dart
|
| index aa5cdeea525215e3e88fe89d6a1c28597df13410..7c538a773bf4b489e26420c77237b94aa0218a0c 100644
|
| --- a/tests/lib/mirrors/parameter_test.dart
|
| +++ b/tests/lib/mirrors/parameter_test.dart
|
| @@ -8,36 +8,55 @@ library test.parameter_test;
|
| @MirrorsUsed(targets: 'test.parameter_test', override: '*')
|
| import 'dart:mirrors';
|
|
|
| +import 'package:expect/expect.dart';
|
| import 'stringify.dart';
|
|
|
| class B {
|
| B();
|
| B.foo(int x);
|
| B.bar(int z, x);
|
| +
|
| + // TODO(6490): Currently only supported by the VM.
|
| + B.baz(final int x, int y, final int z);
|
| + B.qux(int x, [int y= 3 + 1]);
|
| + B.quux(int x, {String str: "foo"});
|
| + B.corge({int x: 3 * 17, String str: "bar"});
|
| +
|
| + var _x;
|
| + get x => _x;
|
| + set x(final value) { _x = value; }
|
| +
|
| + grault([int x]);
|
| + garply({int y});
|
| + waldo(int z);
|
| }
|
|
|
| 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);
|
| + ClassMirror cm = reflectClass(B);
|
| + Map<Symbol, MethodMirror> constructors = cm.constructors;
|
|
|
| - var unnamedConstructor = constructors[new Symbol('B')];
|
| + List<Symbol> constructorKeys = [
|
| + const Symbol('B'), const Symbol('B.bar'), const Symbol('B.baz'),
|
| + const Symbol('B.foo'), const Symbol('B.quux'), const Symbol('B.qux'),
|
| + const Symbol('B.corge')];
|
| + Expect.setEquals(constructorKeys, constructors.keys);
|
|
|
| + MethodMirror unnamedConstructor = constructors[const Symbol('B')];
|
| + expect('Method(s(B) in s(B), constructor)', unnamedConstructor);
|
| expect('[]', unnamedConstructor.parameters);
|
| expect('Class(s(B) in s(test.parameter_test), top-level)',
|
| unnamedConstructor.returnType);
|
|
|
| - var fooConstructor = constructors[new Symbol('B.foo')];
|
| + MethodMirror fooConstructor = constructors[const Symbol('B.foo')];
|
| + expect('Method(s(B.foo) in s(B), constructor)', fooConstructor);
|
| 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')];
|
| + MethodMirror barConstructor = constructors[const Symbol('B.bar')];
|
| + expect('Method(s(B.bar) in s(B), constructor)', barConstructor);
|
| 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),'
|
| @@ -46,5 +65,80 @@ main() {
|
| expect('Class(s(B) in s(test.parameter_test), top-level)',
|
| barConstructor.returnType);
|
|
|
| - print(constructors);
|
| + MethodMirror bazConstructor = constructors[const Symbol('B.baz')];
|
| + expect('Method(s(B.baz) in s(B), constructor)', bazConstructor);
|
| + expect('[Parameter(s(x) in s(B.baz), final,'
|
| + ' type = Class(s(int) in s(dart.core), top-level)), '
|
| + 'Parameter(s(y) in s(B.baz),'
|
| + ' type = Class(s(int) in s(dart.core), top-level)), '
|
| + 'Parameter(s(z) in s(B.baz), final,'
|
| + ' type = Class(s(int) in s(dart.core), top-level))]',
|
| + bazConstructor.parameters);
|
| + expect('Class(s(B) in s(test.parameter_test), top-level)',
|
| + bazConstructor.returnType);
|
| +
|
| + MethodMirror quxConstructor = constructors[const Symbol('B.qux')];
|
| + expect('Method(s(B.qux) in s(B), constructor)', quxConstructor);
|
| + expect('[Parameter(s(x) in s(B.qux),'
|
| + ' type = Class(s(int) in s(dart.core), top-level)), '
|
| + 'Parameter(s(y) in s(B.qux), optional,'
|
| + ' value = Instance(value = 4),'
|
| + ' type = Class(s(int) in s(dart.core), top-level))]',
|
| + quxConstructor.parameters);
|
| + expect('Class(s(B) in s(test.parameter_test), top-level)',
|
| + quxConstructor.returnType);
|
| +
|
| + MethodMirror quuxConstructor = constructors[const Symbol('B.quux')];
|
| + expect('Method(s(B.quux) in s(B), constructor)', quuxConstructor);
|
| + expect('[Parameter(s(x) in s(B.quux),'
|
| + ' type = Class(s(int) in s(dart.core), top-level)), '
|
| + 'Parameter(s(str) in s(B.quux), optional, named,'
|
| + ' value = Instance(value = foo),'
|
| + ' type = Class(s(String) in s(dart.core), top-level))]',
|
| + quuxConstructor.parameters);
|
| + expect('Class(s(B) in s(test.parameter_test), top-level)',
|
| + quuxConstructor.returnType);
|
| +
|
| + MethodMirror corgeConstructor = constructors[const Symbol('B.corge')];
|
| + expect('Method(s(B.corge) in s(B), constructor)', corgeConstructor);
|
| + expect('[Parameter(s(x) in s(B.corge), optional, named,'
|
| + ' value = Instance(value = 51),'
|
| + ' type = Class(s(int) in s(dart.core), top-level)), '
|
| + 'Parameter(s(str) in s(B.corge), optional, named,'
|
| + ' value = Instance(value = bar),'
|
| + ' type = Class(s(String) in s(dart.core), top-level))]',
|
| + corgeConstructor.parameters);
|
| + expect('Class(s(B) in s(test.parameter_test), top-level)',
|
| + corgeConstructor.returnType);
|
| +
|
| + MethodMirror xGetter = cm.getters[const Symbol('x')];
|
| + expect('Method(s(x) in s(B), getter)', xGetter);
|
| + expect('[]', xGetter.parameters);
|
| +
|
| + MethodMirror xSetter = cm.setters[const Symbol('x=')];
|
| + expect('Method(s(x=) in s(B), setter)', xSetter);
|
| + expect('[Parameter(s(value) in s(x=), final,'
|
| + ' type = Type(s(dynamic), top-level))]',
|
| + xSetter.parameters);
|
| +
|
| + MethodMirror grault = cm.members[const Symbol("grault")];
|
| + expect('Method(s(grault) in s(B))', grault);
|
| + expect('[Parameter(s(x) in s(grault), optional,'
|
| + ' type = Class(s(int) in s(dart.core), top-level))]',
|
| + grault.parameters);
|
| + expect('Instance(value = <null>)', grault.parameters[0].defaultValue);
|
| +
|
| + MethodMirror garply = cm.members[const Symbol("garply")];
|
| + expect('Method(s(garply) in s(B))', garply);
|
| + expect('[Parameter(s(y) in s(garply), optional, named,'
|
| + ' type = Class(s(int) in s(dart.core), top-level))]',
|
| + garply.parameters);
|
| + expect('Instance(value = <null>)', garply.parameters[0].defaultValue);
|
| +
|
| + MethodMirror waldo = cm.members[const Symbol("waldo")];
|
| + expect('Method(s(waldo) in s(B))', waldo);
|
| + expect('[Parameter(s(z) in s(waldo),'
|
| + ' type = Class(s(int) in s(dart.core), top-level))]',
|
| + waldo.parameters);
|
| + expect('<null>', waldo.parameters[0].defaultValue);
|
| }
|
|
|