| Index: sdk/lib/_internal/compiler/implementation/elements/modelx.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/elements/modelx.dart b/sdk/lib/_internal/compiler/implementation/elements/modelx.dart
|
| index eedf6a41b479a27fbbb235374d1807cf5b06d613..3ad8ac19c58b3e70cdd1aa1c5327c8ff5787f1ae 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/elements/modelx.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/elements/modelx.dart
|
| @@ -1767,6 +1767,7 @@ abstract class BaseClassElementX extends ElementX implements ClassElement {
|
| int resolutionState;
|
| bool get isResolved => resolutionState == STATE_DONE;
|
| bool isProxy = false;
|
| + bool hasIncompleteHierarchy = false;
|
|
|
| // backendMembers are members that have been added by the backend to simplify
|
| // compilation. They don't have any user-side counter-part.
|
| @@ -1778,6 +1779,9 @@ abstract class BaseClassElementX extends ElementX implements ClassElement {
|
|
|
| int get hierarchyDepth => allSupertypesAndSelf.maxDepth;
|
|
|
| + Map<Name, Member> classMembers;
|
| + Map<Name, MemberSignature> interfaceMembers;
|
| +
|
| BaseClassElementX(String name,
|
| Element enclosing,
|
| this.id,
|
| @@ -2151,6 +2155,18 @@ abstract class BaseClassElementX extends ElementX implements ClassElement {
|
| void setNative(String name) {
|
| nativeTagInfo = name;
|
| }
|
| +
|
| + Member lookupClassMember(Name name) => classMembers[name];
|
| +
|
| + void forEachClassMember(f(Member member)) {
|
| + classMembers.forEach((_, member) => f(member));
|
| + }
|
| +
|
| + MemberSignature lookupInterfaceMember(Name name) => interfaceMembers[name];
|
| +
|
| + void forEachInterfaceMember(f(MemberSignature member)) {
|
| + interfaceMembers.forEach((_, member) => f(member));
|
| + }
|
| }
|
|
|
| abstract class ClassElementX extends BaseClassElementX {
|
|
|