| // 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_unimplemented_interface; | |
| import 'dart:mirrors'; | |
| import 'package:expect/expect.dart'; | |
| class I { | |
| implementMe() {} | |
| } | |
| abstract class C implements I {} | |
| selectKeys<K, V>(Map<K, V> map, bool predicate(V)) { | |
| return map.keys.where((key) => predicate(map[key])); | |
| } | |
| main() { | |
| ClassMirror cm = reflectClass(C); | |
| // N.B.: Does not include #implementMe. | |
| Expect.setEquals([ | |
| #hashCode, | |
| #runtimeType, | |
| #==, | |
| #noSuchMethod, | |
| #toString, | |
| ], selectKeys(cm.instanceMembers, (dm) => !dm.isPrivate)); | |
| // Filter out private to avoid implementation-specific members of Object. | |
| } |