Index: pkg/smoke/lib/mirrors.dart |
diff --git a/pkg/smoke/lib/mirrors.dart b/pkg/smoke/lib/mirrors.dart |
index 4048aae776af947957faf1d8fe94e31bcb4cbd8d..d30baa2ef90df4df998d6cbf1fedc2faf314a9aa 100644 |
--- a/pkg/smoke/lib/mirrors.dart |
+++ b/pkg/smoke/lib/mirrors.dart |
@@ -180,6 +180,8 @@ class ReflectiveTypeInspectorService implements TypeInspectorService { |
isMethod = true; |
} |
+ if (options.matches != null && !options.matches(name)) continue; |
+ |
var annotations = |
member.metadata.map((m) => m.reflectee).toList(); |
if (options.withAnnotations != null && |
@@ -298,17 +300,20 @@ class _MirrorDeclaration implements Declaration { |
/// List of annotations in this declaration. |
List get annotations => _original.metadata.map((a) => a.reflectee).toList(); |
- String toString() { |
- return (new StringBuffer() |
- ..write('[declaration ') |
- ..write(name) |
- ..write(isField ? ' (field) ' |
- : (isProperty ? ' (property) ' : ' (method) ')) |
- ..write(isFinal ? 'final ' : '') |
- ..write(isStatic ? 'static ' : '') |
- ..write(annotations) |
- ..write(']')).toString(); |
- } |
+ int get hashCode => name.hashCode; |
+ operator ==(other) => other is Declaration && name == other.name && |
+ kind == other.kind && isFinal == other.isFinal && |
+ type == other.type && isStatic == other.isStatic && |
+ compareLists(annotations, other.annotations); |
+ String toString() => (new StringBuffer() |
+ ..write('(mirror-based-declaration ') |
+ ..write(name) |
+ ..write(isField ? ' (field) ' |
+ : (isProperty ? ' (property) ' : ' (method) ')) |
+ ..write(isFinal ? 'final ' : '') |
+ ..write(isStatic ? 'static ' : '') |
+ ..write(annotations) |
+ ..write(')')).toString(); |
} |
class _MethodClosure extends Function { |