Index: tests/lib/mirrors/invocation_fuzz_test.dart |
diff --git a/tests/lib/mirrors/invocation_fuzz_test.dart b/tests/lib/mirrors/invocation_fuzz_test.dart |
index 1043145218327f17cc4705dfef871550ed1a140b..7cc6393fe7dc1ef51764c2c86f71de40ff100582 100644 |
--- a/tests/lib/mirrors/invocation_fuzz_test.dart |
+++ b/tests/lib/mirrors/invocation_fuzz_test.dart |
@@ -96,12 +96,26 @@ checkMethod(MethodMirror m, ObjectMirror target, [origin]) { |
queue.add(task); |
} |
+checkField(VariableMirror v, ObjectMirror target, [origin]) { |
+ if (isBlacklisted(v.qualifiedName)) return; |
+ |
+ var task = new Task(); |
+ task.name = '${MirrorSystem.getName(v.qualifiedName)} from $origin'; |
+ |
+ task.action = () => target.getField(v.simpleName); |
+ |
+ queue.add(task); |
+} |
+ |
checkInstance(instanceMirror, origin) { |
ClassMirror klass = instanceMirror.type; |
while (klass != null) { |
instanceMirror.type.declarations.values |
.where((d) => d is MethodMirror && !d.isStatic) |
.forEach((m) => checkMethod(m, instanceMirror, origin)); |
+ instanceMirror.type.declarations.values |
+ .where((d) => d is VariableMirror) |
+ .forEach((v) => checkField(v, instanceMirror, origin)); |
klass = klass.superclass; |
} |
} |
@@ -177,7 +191,7 @@ main() { |
var valueObjects = |
[true, false, null, [], {}, dynamic, |
- 0, 0xEFFFFFF, 0xFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 3.14159, |
+ 0, 0xEFFFFFF, 0xFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 3.14159, () {}, |
"foo", 'blåbærgrød', 'Îñţérñåţîöñåļîžåţîờñ', "\u{1D11E}", #symbol]; |
valueObjects.forEach((v) => checkInstance(reflect(v), 'value object')); |