// 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. library test.instance_members; import 'dart:mirrors'; import 'package:expect/expect.dart'; import 'declarations_model.dart' as declarations_model; selectKeys(Map map, bool Function(V) predicate) { return map.keys.where((K key) => predicate(map[key] as V)); } main() { ClassMirror cm = reflectClass(declarations_model.Class); Expect.setEquals([ #+, #instanceVariable, const Symbol('instanceVariable='), #instanceGetter, const Symbol('instanceSetter='), #instanceMethod, #-, #inheritedInstanceVariable, const Symbol('inheritedInstanceVariable='), #inheritedInstanceGetter, const Symbol('inheritedInstanceSetter='), #inheritedInstanceMethod, #*, #mixinInstanceVariable, const Symbol('mixinInstanceVariable='), #mixinInstanceGetter, const Symbol('mixinInstanceSetter='), #mixinInstanceMethod, #hashCode, #runtimeType, #==, #noSuchMethod, #toString ], selectKeys(cm.instanceMembers, (dynamic dm) => !dm.isPrivate)); // Filter out private to avoid implementation-specific members of Object. Expect.setEquals( [ #instanceVariable, const Symbol('instanceVariable='), #inheritedInstanceVariable, const Symbol('inheritedInstanceVariable='), #mixinInstanceVariable, const Symbol('mixinInstanceVariable=') ], selectKeys( cm.instanceMembers, (dynamic dm) => !dm.isPrivate && dm.isSynthetic)); }