| // 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, predicate) { | |
| return map.keys.where((key) => predicate(map[key])); | |
| } | |
| 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, (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, (dm) => !dm.isPrivate && dm.isSynthetic)); | |
| } |