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

Unified Diff: pkg/analyzer/lib/src/dart/element/element.dart

Issue 2813543007: Pass ElementImpl as a context for resynthesizing types. (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/summary/link.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/dart/element/element.dart
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index f5b2df67ad4136ad981f5d64e9dde6765e2ffdcc..fadc2e2efbbaa8b7531848300ecb22e3639de581 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -724,7 +724,7 @@ class ClassElementImpl extends AbstractClassElementImpl
if (_unlinkedClass != null && _interfaces == null) {
ResynthesizerContext context = enclosingUnit.resynthesizerContext;
_interfaces = _unlinkedClass.interfaces
- .map((EntityRef t) => context.resolveTypeRef(t, this))
+ .map((EntityRef t) => context.resolveTypeRef(this, t))
.where(_isClassInterfaceType)
.toList(growable: false);
}
@@ -831,7 +831,7 @@ class ClassElementImpl extends AbstractClassElementImpl
if (_unlinkedClass != null && _mixins == null) {
ResynthesizerContext context = enclosingUnit.resynthesizerContext;
_mixins = _unlinkedClass.mixins
- .map((EntityRef t) => context.resolveTypeRef(t, this))
+ .map((EntityRef t) => context.resolveTypeRef(this, t))
.where(_isClassInterfaceType)
.toList(growable: false);
}
@@ -865,7 +865,7 @@ class ClassElementImpl extends AbstractClassElementImpl
if (_unlinkedClass != null && _supertype == null) {
if (_unlinkedClass.supertype != null) {
DartType type = enclosingUnit.resynthesizerContext
- .resolveTypeRef(_unlinkedClass.supertype, this);
+ .resolveTypeRef(this, _unlinkedClass.supertype);
if (_isClassInterfaceType(type)) {
_supertype = type;
} else {
@@ -3879,10 +3879,10 @@ abstract class ExecutableElementImpl extends ElementImpl
_returnType == null) {
bool isSetter =
serializedExecutable.kind == UnlinkedExecutableKind.setter;
- _returnType = enclosingUnit.resynthesizerContext.resolveLinkedType(
- serializedExecutable.inferredReturnTypeSlot, typeParameterContext);
+ _returnType = enclosingUnit.resynthesizerContext
+ .resolveLinkedType(this, serializedExecutable.inferredReturnTypeSlot);
_declaredReturnType = enclosingUnit.resynthesizerContext.resolveTypeRef(
- serializedExecutable.returnType, typeParameterContext,
+ this, serializedExecutable.returnType,
defaultVoid: isSetter && context.analysisOptions.strongMode,
declaredType: true);
}
@@ -4572,7 +4572,7 @@ class FunctionElementImpl_forLUB extends FunctionElementImpl {
@override
DartType get returnType {
return _returnType ??= enclosingUnit.resynthesizerContext
- .resolveTypeRef(_entityRef.syntheticReturnType, typeParameterContext);
+ .resolveTypeRef(this, _entityRef.syntheticReturnType);
}
@override
@@ -4736,7 +4736,7 @@ class FunctionTypeAliasElementImpl extends ElementImpl
DartType get returnType {
if (_unlinkedTypedef != null && _returnType == null) {
_returnType = enclosingUnit.resynthesizerContext.resolveTypeRef(
- _unlinkedTypedef.returnType, this,
+ this, _unlinkedTypedef.returnType,
declaredType: true);
}
return _returnType;
@@ -4859,11 +4859,6 @@ class GenericFunctionTypeElementImpl extends ElementImpl
EntityRef _entityRef;
/**
- * The enclosing type parameter context.
- */
- TypeParameterizedElementMixin _typeParameterContext;
-
- /**
* The declared return type of the function.
*/
DartType _returnType;
@@ -4889,13 +4884,13 @@ class GenericFunctionTypeElementImpl extends ElementImpl
* Initialize from serialized information.
*/
GenericFunctionTypeElementImpl.forSerialized(
- this._entityRef, this._typeParameterContext)
- : super.forSerialized(null);
+ ElementImpl enclosingElement, this._entityRef)
+ : super.forSerialized(enclosingElement);
@override
- TypeParameterizedElementMixin get enclosingTypeParameterContext =>
- _typeParameterContext ??
- (enclosingElement as ElementImpl).typeParameterContext;
+ TypeParameterizedElementMixin get enclosingTypeParameterContext {
+ return _enclosingElement.typeParameterContext;
+ }
@override
String get identifier => '-';
@@ -4928,7 +4923,7 @@ class GenericFunctionTypeElementImpl extends ElementImpl
DartType get returnType {
if (_entityRef != null && _returnType == null) {
_returnType = enclosingUnit.resynthesizerContext.resolveTypeRef(
- _entityRef.syntheticReturnType, typeParameterContext,
+ this, _entityRef.syntheticReturnType,
defaultVoid: false, declaredType: true);
}
return _returnType;
@@ -5102,7 +5097,7 @@ class GenericTypeAliasElementImpl extends ElementImpl
GenericFunctionTypeElement get function {
if (_function == null && _unlinkedTypedef != null) {
DartType type = enclosingUnit.resynthesizerContext.resolveTypeRef(
- _unlinkedTypedef.returnType, this,
+ this, _unlinkedTypedef.returnType,
declaredType: true);
if (type is FunctionType) {
Element element = type.element;
@@ -7280,11 +7275,10 @@ abstract class NonParameterVariableElementImpl extends VariableElementImpl {
@override
DartType get type {
if (_unlinkedVariable != null && _declaredType == null && _type == null) {
- _type = enclosingUnit.resynthesizerContext.resolveLinkedType(
- _unlinkedVariable.inferredTypeSlot, typeParameterContext);
- declaredType = enclosingUnit.resynthesizerContext.resolveTypeRef(
- _unlinkedVariable.type, typeParameterContext,
- declaredType: true);
+ _type = enclosingUnit.resynthesizerContext
+ .resolveLinkedType(this, _unlinkedVariable.inferredTypeSlot);
+ declaredType = enclosingUnit.resynthesizerContext
+ .resolveTypeRef(this, _unlinkedVariable.type, declaredType: true);
}
return super.type;
}
@@ -7786,18 +7780,17 @@ class ParameterElementImpl extends VariableElementImpl
parameterTypeElement.shareParameters(subParameters);
}
parameterTypeElement.returnType = enclosingUnit.resynthesizerContext
- .resolveTypeRef(_unlinkedParam.type, typeParameterContext);
+ .resolveTypeRef(this, _unlinkedParam.type);
FunctionTypeImpl parameterType =
new FunctionTypeImpl.elementWithNameAndArgs(parameterTypeElement,
null, typeParameterContext.allTypeParameterTypes, false);
parameterTypeElement.type = parameterType;
_type = parameterType;
} else {
- _type = enclosingUnit.resynthesizerContext.resolveLinkedType(
- _unlinkedParam.inferredTypeSlot, typeParameterContext);
- declaredType = enclosingUnit.resynthesizerContext.resolveTypeRef(
- _unlinkedParam.type, typeParameterContext,
- declaredType: true);
+ _type = enclosingUnit.resynthesizerContext
+ .resolveLinkedType(this, _unlinkedParam.inferredTypeSlot);
+ declaredType = enclosingUnit.resynthesizerContext
+ .resolveTypeRef(this, _unlinkedParam.type, declaredType: true);
}
}
}
@@ -8294,8 +8287,8 @@ abstract class PropertyInducingElementImpl
@override
DartType get propagatedType {
if (_unlinkedVariable != null && _propagatedType == null) {
- _propagatedType = enclosingUnit.resynthesizerContext.resolveLinkedType(
- _unlinkedVariable.propagatedTypeSlot, typeParameterContext);
+ _propagatedType = enclosingUnit.resynthesizerContext
+ .resolveLinkedType(this, _unlinkedVariable.propagatedTypeSlot);
}
return _propagatedType;
}
@@ -8370,14 +8363,13 @@ abstract class ResynthesizerContext {
* unresolved, return `null`.
*/
ConstructorElement resolveConstructorRef(
- TypeParameterizedElementMixin typeParameterContext, EntityRef entry);
+ ElementImpl context, EntityRef entry);
/**
* Build the appropriate [DartType] object corresponding to a slot id in the
* [LinkedUnit.types] table.
*/
- DartType resolveLinkedType(
- int slot, TypeParameterizedElementMixin typeParameterContext);
+ DartType resolveLinkedType(ElementImpl context, int slot);
/**
* Resolve an [EntityRef] into a type. If the reference is
@@ -8386,8 +8378,7 @@ abstract class ResynthesizerContext {
* TODO(paulberry): or should we have a class representing an
* unresolved type, for consistency with the full element model?
*/
- DartType resolveTypeRef(
- EntityRef type, TypeParameterizedElementMixin typeParameterContext,
+ DartType resolveTypeRef(ElementImpl context, EntityRef type,
{bool defaultVoid: false,
bool instantiateToBoundsAllowed: true,
bool declaredType: false});
@@ -8589,7 +8580,7 @@ class TypeParameterElementImpl extends ElementImpl
return null;
}
return _bound ??= enclosingUnit.resynthesizerContext.resolveTypeRef(
- _unlinkedTypeParam.bound, enclosingElement,
+ this, _unlinkedTypeParam.bound,
instantiateToBoundsAllowed: false, declaredType: true);
}
return _bound;
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/summary/link.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698