| Index: frog/type.dart
|
| diff --git a/frog/type.dart b/frog/type.dart
|
| index 8399dcc398ffa2b41839ccff3b2970df7ab090f4..1fd10fa339a1457705b62a926937020c4b281fb5 100644
|
| --- a/frog/type.dart
|
| +++ b/frog/type.dart
|
| @@ -1146,16 +1146,19 @@ class DefinedType extends Type {
|
| return ret;
|
| } else {
|
| for (var t in subtypes) {
|
| - var m;
|
| if (!isClass && t.isClass) {
|
| // If this is an interface, the actual implementation may
|
| // come from a class that does not implement this interface.
|
| // TODO(vsm): Use a more efficient lookup strategy.
|
| - m = t.getMember(memberName);
|
| + // TODO(jimhug): This is made uglier by need to avoid dups.
|
| + final m = t.getMember(memberName);
|
| + if (m != null && ret.members.indexOf(m) == -1) {
|
| + ret.add(m);
|
| + }
|
| } else {
|
| - m = t.members[memberName];
|
| + final m = t.members[memberName];
|
| + if (m != null) ret.add(m);
|
| }
|
| - if (m != null) ret.add(m);
|
| }
|
| return ret;
|
| }
|
|
|