Index: pkg/unittest/lib/mirror_matchers.dart |
diff --git a/pkg/unittest/lib/mirror_matchers.dart b/pkg/unittest/lib/mirror_matchers.dart |
index 7d1597f2ac27f59c752109141a93a6a58ce6c51c..93656807269d3a82093826b4c84fa4af2c7f29e9 100644 |
--- a/pkg/unittest/lib/mirror_matchers.dart |
+++ b/pkg/unittest/lib/mirror_matchers.dart |
@@ -49,7 +49,13 @@ class _HasProperty extends Matcher { |
var mirror = reflect(item); |
var classMirror = mirror.type; |
var symbol = new Symbol(_name); |
- if (!classMirror.getters.containsKey(symbol)) { |
+ bool hasGetter(classMirror, getterName) { |
+ var candidate = classMirror.declarations[getterName]; |
+ return candidate != null && |
+ candidate is MethodMirror && |
+ candidate.isGetter; |
+ } |
+ if (!hasGetter(classMirror, symbol)) { |
addStateInfo(matchState, {'reason': 'has no property named "$_name"'}); |
return false; |
} |