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

Unified Diff: pkg/compiler/lib/src/resolution/members.dart

Issue 2644533002: Mostly use entities in use.dart (Closed)
Patch Set: Fixes Created 3 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: pkg/compiler/lib/src/resolution/members.dart
diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
index 844f0b04005dd0f9e24b8672c4c7ad36adaf65aa..90600657b467c1ea883e6f6b9703e9e68f43a1d0 100644
--- a/pkg/compiler/lib/src/resolution/members.dart
+++ b/pkg/compiler/lib/src/resolution/members.dart
@@ -1180,8 +1180,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
// TODO(johnniwinther): Add information to [AccessSemantics] about
// whether it is erroneous.
if (semantics.kind == AccessKind.SUPER_METHOD) {
- registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.element.declaration, selector.callStructure));
+ MethodElement superMethod = semantics.element.declaration;
+ registry.registerStaticUse(
+ new StaticUse.superInvoke(superMethod, selector.callStructure));
}
// TODO(23998): Remove this when all information goes through
// the [SendStructure].
@@ -1354,8 +1355,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
// TODO(johnniwinther): Add information to [AccessSemantics] about
// whether it is erroneous.
if (semantics.kind == AccessKind.SUPER_METHOD) {
- registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.element.declaration, selector.callStructure));
+ MethodElement superMethod = semantics.element.declaration;
+ registry.registerStaticUse(
+ new StaticUse.superInvoke(superMethod, selector.callStructure));
}
// TODO(23998): Remove this when all information goes through
// the [SendStructure].
@@ -1573,13 +1575,14 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
isIncompatibleInvoke = true;
} else {
registry.registerStaticUse(
- new StaticUse.superInvoke(semantics.element, callStructure));
+ new StaticUse.superInvoke(superMethod, callStructure));
}
break;
case AccessKind.SUPER_FIELD:
case AccessKind.SUPER_FINAL_FIELD:
case AccessKind.SUPER_GETTER:
- registry.registerStaticUse(new StaticUse.superGet(semantics.element));
+ MemberElement superMember = semantics.element;
+ registry.registerStaticUse(new StaticUse.superGet(superMember));
selector = callStructure.callSelector;
registry.registerDynamicUse(new DynamicUse(selector, null));
break;
@@ -1605,13 +1608,14 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
case AccessKind.SUPER_METHOD:
// TODO(johnniwinther): Method this should be registered as a
// closurization.
- registry
- .registerStaticUse(new StaticUse.superTearOff(semantics.element));
+ MethodElement superMethod = semantics.element;
+ registry.registerStaticUse(new StaticUse.superTearOff(superMethod));
break;
case AccessKind.SUPER_FIELD:
case AccessKind.SUPER_FINAL_FIELD:
case AccessKind.SUPER_GETTER:
- registry.registerStaticUse(new StaticUse.superGet(semantics.element));
+ MemberElement superMember = semantics.element;
+ registry.registerStaticUse(new StaticUse.superGet(superMember));
break;
case AccessKind.SUPER_SETTER:
case AccessKind.UNRESOLVED_SUPER:
@@ -2668,7 +2672,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
isIncompatibleInvoke = true;
} else {
registry.registerStaticUse(
- new StaticUse.staticInvoke(semantics.element, callStructure));
+ new StaticUse.staticInvoke(method, callStructure));
handleForeignCall(node, semantics.element, callStructure);
if (method == resolution.commonElements.identicalFunction &&
argumentsResult.isValidAsConstant) {
@@ -2686,8 +2690,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
case AccessKind.TOPLEVEL_FIELD:
case AccessKind.FINAL_TOPLEVEL_FIELD:
case AccessKind.TOPLEVEL_GETTER:
- registry
- .registerStaticUse(new StaticUse.staticGet(semantics.element));
+ MemberElement member = semantics.element;
+ registry.registerStaticUse(new StaticUse.staticGet(member));
selector = callStructure.callSelector;
registry.registerDynamicUse(new DynamicUse(selector, null));
break;
@@ -2713,8 +2717,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
switch (semantics.kind) {
case AccessKind.STATIC_METHOD:
case AccessKind.TOPLEVEL_METHOD:
- registry.registerStaticUse(
- new StaticUse.staticTearOff(semantics.element));
+ MethodElement method = semantics.element;
+ registry.registerStaticUse(new StaticUse.staticTearOff(method));
break;
case AccessKind.STATIC_FIELD:
case AccessKind.FINAL_STATIC_FIELD:
@@ -2722,8 +2726,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
case AccessKind.TOPLEVEL_FIELD:
case AccessKind.FINAL_TOPLEVEL_FIELD:
case AccessKind.TOPLEVEL_GETTER:
- registry
- .registerStaticUse(new StaticUse.staticGet(semantics.element));
+ MemberElement member = semantics.element;
+ registry.registerStaticUse(new StaticUse.staticGet(member));
break;
case AccessKind.STATIC_SETTER:
case AccessKind.TOPLEVEL_SETTER:
@@ -2833,16 +2837,17 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
semantics = new StaticAccess.unresolved(member);
} else if (member.isFunction) {
// `a = b`, `a++` or `a += b` where `a` is a function.
+ MethodElement method = member;
ErroneousElement error = reportAndCreateErroneousElement(
node.selector, name.text, MessageKind.ASSIGNING_METHOD, const {});
registry.registerFeature(Feature.THROW_NO_SUCH_METHOD);
if (node.isComplex) {
// `a++` or `a += b` where `a` is a function.
- registry.registerStaticUse(new StaticUse.staticTearOff(element));
+ registry.registerStaticUse(new StaticUse.staticTearOff(method));
}
semantics = member.isTopLevel
- ? new StaticAccess.topLevelMethod(member)
- : new StaticAccess.staticMethod(member);
+ ? new StaticAccess.topLevelMethod(method)
+ : new StaticAccess.staticMethod(method);
} else {
// `a = b`, `a++` or `a += b` where `a` is a field.
assert(invariant(node, member.isField,
@@ -3168,12 +3173,14 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
isIndex: true);
if (!semantics.getter.isError) {
- registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.getter, getterSelector.callStructure));
+ MethodElement getter = semantics.getter;
+ registry.registerStaticUse(
+ new StaticUse.superInvoke(getter, getterSelector.callStructure));
}
if (!semantics.setter.isError) {
- registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.setter, setterSelector.callStructure));
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(
+ new StaticUse.superInvoke(setter, setterSelector.callStructure));
}
// TODO(23998): Remove these when elements are only accessed
@@ -3209,8 +3216,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
// through the send structure.
registry.setSelector(node, setterSelector);
if (!semantics.setter.isError) {
- registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.setter, setterSelector.callStructure));
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(
+ new StaticUse.superInvoke(setter, setterSelector.callStructure));
}
SendStructure sendStructure = new IndexSetStructure(semantics);
@@ -3228,12 +3236,14 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
isIndex: true);
if (!semantics.getter.isError) {
+ MethodElement getter = semantics.getter;
registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.getter, getterSelector.callStructure));
+ getter, getterSelector.callStructure));
}
if (!semantics.setter.isError) {
+ MethodElement setter = semantics.setter;
registry.registerStaticUse(new StaticUse.superInvoke(
- semantics.setter, setterSelector.callStructure));
+ setter, setterSelector.callStructure));
}
// TODO(23998): Remove these when elements are only accessed
@@ -3276,52 +3286,54 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
void registerStaticUses(AccessSemantics semantics) {
switch (semantics.kind) {
case AccessKind.SUPER_METHOD:
- registry
- .registerStaticUse(new StaticUse.superTearOff(semantics.element));
+ MethodElement method = semantics.element;
+ registry.registerStaticUse(new StaticUse.superTearOff(method));
break;
case AccessKind.SUPER_GETTER:
- registry.registerStaticUse(new StaticUse.superGet(semantics.getter));
+ MethodElement getter = semantics.getter;
+ registry.registerStaticUse(new StaticUse.superGet(getter));
break;
case AccessKind.SUPER_SETTER:
- registry.registerStaticUse(
- new StaticUse.superSetterSet(semantics.setter));
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superSetterSet(setter));
break;
case AccessKind.SUPER_FIELD:
- registry.registerStaticUse(new StaticUse.superGet(semantics.element));
- registry.registerStaticUse(
- new StaticUse.superFieldSet(semantics.element));
+ FieldElement field = semantics.element;
+ registry.registerStaticUse(new StaticUse.superGet(field));
+ registry.registerStaticUse(new StaticUse.superFieldSet(field));
break;
case AccessKind.SUPER_FINAL_FIELD:
- registry.registerStaticUse(new StaticUse.superGet(semantics.element));
+ FieldElement field = semantics.element;
+ registry.registerStaticUse(new StaticUse.superGet(field));
break;
case AccessKind.COMPOUND:
CompoundAccessSemantics compoundSemantics = semantics;
switch (compoundSemantics.compoundAccessKind) {
case CompoundAccessKind.SUPER_GETTER_FIELD:
case CompoundAccessKind.SUPER_FIELD_FIELD:
- registry
- .registerStaticUse(new StaticUse.superGet(semantics.getter));
- registry.registerStaticUse(
- new StaticUse.superFieldSet(semantics.setter));
+ MemberElement getter = semantics.getter;
+ FieldElement setter = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superGet(getter));
+ registry.registerStaticUse(new StaticUse.superFieldSet(setter));
break;
case CompoundAccessKind.SUPER_FIELD_SETTER:
case CompoundAccessKind.SUPER_GETTER_SETTER:
- registry
- .registerStaticUse(new StaticUse.superGet(semantics.getter));
- registry.registerStaticUse(
- new StaticUse.superSetterSet(semantics.setter));
+ MemberElement getter = semantics.getter;
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superGet(getter));
+ registry.registerStaticUse(new StaticUse.superSetterSet(setter));
break;
case CompoundAccessKind.SUPER_METHOD_SETTER:
- registry.registerStaticUse(
- new StaticUse.superSetterSet(semantics.setter));
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superSetterSet(setter));
break;
case CompoundAccessKind.UNRESOLVED_SUPER_GETTER:
- registry.registerStaticUse(
- new StaticUse.superSetterSet(semantics.setter));
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superSetterSet(setter));
break;
case CompoundAccessKind.UNRESOLVED_SUPER_SETTER:
- registry
- .registerStaticUse(new StaticUse.superGet(semantics.getter));
+ MethodElement getter = semantics.getter;
+ registry.registerStaticUse(new StaticUse.superGet(getter));
break;
default:
break;
@@ -3371,12 +3383,12 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
registry.registerFeature(Feature.SUPER_NO_SUCH_METHOD);
break;
case AccessKind.SUPER_FIELD:
- registry.registerStaticUse(
- new StaticUse.superFieldSet(semantics.setter));
+ FieldElement field = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superFieldSet(field));
break;
case AccessKind.SUPER_SETTER:
- registry.registerStaticUse(
- new StaticUse.superSetterSet(semantics.setter));
+ MethodElement setter = semantics.setter;
+ registry.registerStaticUse(new StaticUse.superSetterSet(setter));
break;
default:
break;
@@ -3902,11 +3914,12 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
// and only declaration elements may be registered.
// TODO(johniwinther): Avoid registration of `type` in face of redirecting
// factory constructors.
+ ConstructorElement declaration = constructor.declaration;
registry.registerStaticUse(node.isConst
? new StaticUse.constConstructorInvoke(
- constructor.declaration, callStructure, type)
+ declaration, callStructure, type)
: new StaticUse.typedConstructorInvoke(
- constructor.declaration, callStructure, type));
+ constructor, callStructure, type));
ResolutionInterfaceType interfaceType = type;
if (interfaceType.typeArguments
.any((ResolutionDartType type) => !type.isDynamic)) {
@@ -4351,8 +4364,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
if (loopVariable == null || loopVariable.isInstanceMember) {
registry.registerDynamicUse(new DynamicUse(loopVariableSelector, null));
} else if (loopVariable.isStatic || loopVariable.isTopLevel) {
- registry.registerStaticUse(
- new StaticUse.staticSet(loopVariable.declaration));
+ MemberElement member = loopVariable.declaration;
+ registry.registerStaticUse(new StaticUse.staticSet(member));
}
} else {
// The selector may only be null if we reported an error.

Powered by Google App Engine
This is Rietveld 408576698