Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Unified Diff: sdk/lib/_internal/compiler/implementation/elements/modelx.dart

Issue 141753002: Reapply "Implement new model for class members." and "Implement new model for interface members." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix dart2dart bug. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {

Powered by Google App Engine
This is Rietveld 408576698