Elements. Remove VariableFragmentImpl.type
Elements, not fragments, have types. Change-Id: I2d1be6b03661f0a6bb76d61d3c00914d3c1253ee Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/440040 Reviewed-by: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
@@ -109,7 +109,7 @@ testFineAfterLibraryAnalyzerHook;
|
||||
// TODO(scheglov): Clean up the list of implicitly analyzed files.
|
||||
class AnalysisDriver {
|
||||
/// The version of data format, should be incremented on every format change.
|
||||
static const int DATA_VERSION = 499;
|
||||
static const int DATA_VERSION = 502;
|
||||
|
||||
/// The number of exception contexts allowed to write. Once this field is
|
||||
/// zero, we stop writing any new exception contexts in this process.
|
||||
|
||||
@@ -187,7 +187,7 @@ class ElementDisplayStringBuilder {
|
||||
|
||||
_writeTypeParameters(element.typeParameters);
|
||||
_write('(');
|
||||
_writeType(element.representation.type);
|
||||
_writeType(element.representation.element.type);
|
||||
_write(' ');
|
||||
_write(element.representation.name ?? '<null-name}>');
|
||||
_write(')');
|
||||
@@ -431,7 +431,7 @@ class ElementDisplayStringBuilder {
|
||||
}
|
||||
|
||||
void writeVariableElement(VariableFragmentImpl element) {
|
||||
_writeType(element.type);
|
||||
_writeType(element.element.type);
|
||||
_write(' ');
|
||||
_write(element.displayName);
|
||||
}
|
||||
|
||||
@@ -497,9 +497,7 @@ class ClassElementImpl extends InterfaceElementImpl implements ClassElement {
|
||||
formalParameterFragment,
|
||||
);
|
||||
formalParameterElements.add(formalParameterElement);
|
||||
|
||||
formalParameterElement.type = superFormalParameter.type;
|
||||
formalParameterFragment.type = superFormalParameter.type;
|
||||
|
||||
superInvocationArguments.add(
|
||||
SimpleIdentifierImpl(
|
||||
@@ -9026,7 +9024,6 @@ abstract class PropertyInducingElementImpl extends VariableElementImpl
|
||||
var type = firstFragment.typeInference?.perform();
|
||||
type ??= InvalidTypeImpl.instance;
|
||||
_type = type;
|
||||
firstFragment._type = type;
|
||||
shouldUseTypeForInitializerInference = false;
|
||||
|
||||
// TODO(scheglov): We repeat this code.
|
||||
@@ -9041,9 +9038,6 @@ abstract class PropertyInducingElementImpl extends VariableElementImpl
|
||||
setterElement.firstFragment.returnType = VoidTypeImpl.instance;
|
||||
(setterElement.formalParameters.single as FormalParameterElementImpl)
|
||||
.type = type;
|
||||
(setterElement.formalParameters.single as FormalParameterElementImpl)
|
||||
.firstFragment
|
||||
.type = type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9132,12 +9126,6 @@ abstract class PropertyInducingFragmentImpl
|
||||
@Deprecated('Use metadata instead')
|
||||
@override
|
||||
MetadataImpl get metadata2 => metadata;
|
||||
|
||||
@override
|
||||
TypeImpl get type {
|
||||
_ensureReadResolution();
|
||||
return _type!;
|
||||
}
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
@@ -10537,9 +10525,6 @@ abstract class VariableElementImpl extends ElementImpl
|
||||
|
||||
abstract class VariableFragmentImpl extends FragmentImpl
|
||||
implements AnnotatableFragmentImpl, VariableFragment {
|
||||
/// The type of this variable.
|
||||
TypeImpl? _type;
|
||||
|
||||
/// If this element represents a constant variable, and it has an initializer,
|
||||
/// a copy of the initializer for the constant. Otherwise `null`.
|
||||
///
|
||||
@@ -10655,18 +10640,6 @@ abstract class VariableFragmentImpl extends FragmentImpl
|
||||
throw StateError('($runtimeType) $this');
|
||||
}
|
||||
|
||||
/// The declared type of this variable.
|
||||
// TODO(scheglov): make it nullable and turn into field
|
||||
TypeImpl get type => _type!;
|
||||
|
||||
set type(TypeImpl type) {
|
||||
_type = type;
|
||||
}
|
||||
|
||||
/// The declared type of this variable.
|
||||
// TODO(scheglov): turn into field
|
||||
TypeImpl? get type2 => _type;
|
||||
|
||||
@override
|
||||
void appendTo(ElementDisplayStringBuilder builder) {
|
||||
builder.writeVariableElement(this);
|
||||
|
||||
@@ -1031,7 +1031,6 @@ class InheritanceManager3 {
|
||||
assert(fieldReference.element == null);
|
||||
FieldElementImpl(reference: fieldReference, firstFragment: resultField);
|
||||
|
||||
resultField.type = executable.formalParameters[0].type;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1162,11 +1161,9 @@ class InheritanceManager3 {
|
||||
resultFragment.element.variable = fieldElement;
|
||||
|
||||
if (firstElement is GetterElement) {
|
||||
field.type = resultFragment.returnType;
|
||||
fieldElement.type = resultFragment.returnType;
|
||||
} else {
|
||||
var type = resultFragment.parameters[0].element.type;
|
||||
field.type = type;
|
||||
fieldElement.type = type;
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +114,6 @@ class FunctionExpressionResolver {
|
||||
}
|
||||
if (inferredType is! DynamicType) {
|
||||
p.type = inferredType;
|
||||
p.firstFragment.type = inferredType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,7 +247,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
fragment.hasImplicitType = true;
|
||||
fragment.element.type = _typeProvider.objectType;
|
||||
} else {
|
||||
fragment.type = exceptionTypeNode.typeOrThrow;
|
||||
fragment.element.type = exceptionTypeNode.typeOrThrow;
|
||||
}
|
||||
|
||||
@@ -398,7 +397,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
if (node.type case var typeNode?) {
|
||||
typeNode.accept(this);
|
||||
fragment.type = typeNode.typeOrThrow;
|
||||
fragment.element.type = typeNode.typeOrThrow;
|
||||
} else {
|
||||
fragment.hasImplicitType = true;
|
||||
@@ -426,7 +424,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
_define(fragment.element);
|
||||
fragment.hasImplicitType = node.type == null;
|
||||
if (node.type case var typeNode?) {
|
||||
fragment.type = typeNode.typeOrThrow;
|
||||
fragment.element.type = typeNode.typeOrThrow;
|
||||
}
|
||||
node.declaredFragment = fragment;
|
||||
@@ -667,7 +664,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
// Only for recovery, this should not happen in valid code.
|
||||
fragment.element.type = node.type?.type ?? _dynamicType;
|
||||
fragment.type = node.type?.type ?? _dynamicType;
|
||||
_withElementWalker(null, () {
|
||||
node.parameters?.accept(this);
|
||||
});
|
||||
@@ -895,7 +891,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
nullabilitySuffix: _getNullability(node.question != null),
|
||||
);
|
||||
fragment.element.type = type;
|
||||
fragment.type = type;
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -1274,7 +1269,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
node.type?.accept(this);
|
||||
if (_elementWalker == null) {
|
||||
fragment.element.type = node.type?.type ?? _dynamicType;
|
||||
fragment.type = node.type?.type ?? _dynamicType;
|
||||
}
|
||||
|
||||
_setOrCreateMetadataElements(fragment, node.metadata);
|
||||
@@ -1332,7 +1326,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
// Only for recovery, this should not happen in valid code.
|
||||
element.element.type = node.type?.type ?? _dynamicType;
|
||||
element.type = node.type?.type ?? _dynamicType;
|
||||
_withElementWalker(null, () {
|
||||
node.parameters?.accept(this);
|
||||
});
|
||||
@@ -1445,7 +1438,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
localFragment.hasInitializer = initializerNode != null;
|
||||
if (varList.type case var typeNode?) {
|
||||
var type = typeNode.typeOrThrow;
|
||||
localFragment.type = type;
|
||||
localFragment.element.type = type;
|
||||
} else {
|
||||
localFragment.hasImplicitType = true;
|
||||
@@ -2028,9 +2020,7 @@ class _VariableBinder
|
||||
),
|
||||
),
|
||||
);
|
||||
resultFragment
|
||||
..enclosingFragment = first.firstFragment.enclosingFragment
|
||||
..type = InvalidTypeImpl.instance;
|
||||
resultFragment.enclosingFragment = first.firstFragment.enclosingFragment;
|
||||
|
||||
return resultFragment.element;
|
||||
}
|
||||
|
||||
@@ -436,7 +436,6 @@ class AstBinaryReader {
|
||||
}
|
||||
node.declaredFragment = fragment;
|
||||
fragment.element.type = nonDefaultElement.element.type;
|
||||
fragment.type = nonDefaultElement.element.type;
|
||||
|
||||
return node;
|
||||
}
|
||||
@@ -1227,7 +1226,6 @@ class AstBinaryReader {
|
||||
parameterKind: node.kind,
|
||||
);
|
||||
fragment.element.type = actualType;
|
||||
fragment.type = actualType;
|
||||
node.declaredFragment = fragment;
|
||||
|
||||
return node;
|
||||
|
||||
@@ -727,7 +727,6 @@ class LibraryReader {
|
||||
reader._addTypeParameters2(enclosingElement.typeParameters);
|
||||
|
||||
_readFragmentMetadata(fragment, reader);
|
||||
fragment.type = reader.readRequiredType();
|
||||
if (reader.readOptionalExpression() case var initializer?) {
|
||||
fragment.constantInitializer = initializer;
|
||||
ConstantContextForExpressionImpl(fragment, initializer);
|
||||
@@ -748,8 +747,6 @@ class LibraryReader {
|
||||
_readFormalParameters2(unitElement, reader, parameter.parameters);
|
||||
var type = reader.readType() ?? InvalidTypeImpl.instance;
|
||||
parameter.element.type = type;
|
||||
// TODO(scheglov): make the `type` property optional
|
||||
parameter.type = type;
|
||||
parameter.constantInitializer = reader.readOptionalExpression();
|
||||
if (parameter is FieldFormalParameterFragmentImpl) {
|
||||
// TODO(scheglov): use element
|
||||
@@ -1295,7 +1292,6 @@ class LibraryReader {
|
||||
readResolution: (fragment, reader) {
|
||||
reader.currentLibraryFragment = fragment.libraryFragment;
|
||||
_readFragmentMetadata(fragment, reader);
|
||||
fragment.type = reader.readRequiredType();
|
||||
if (reader.readOptionalExpression() case var initializer?) {
|
||||
fragment.constantInitializer = initializer;
|
||||
ConstantContextForExpressionImpl(fragment, initializer);
|
||||
@@ -1809,7 +1805,6 @@ class ResolutionReader {
|
||||
parameterKind: kind,
|
||||
);
|
||||
element.element.type = type;
|
||||
element.type = type;
|
||||
} else {
|
||||
element = FormalParameterFragmentImpl(
|
||||
firstTokenOffset: null,
|
||||
@@ -1818,7 +1813,6 @@ class ResolutionReader {
|
||||
parameterKind: kind,
|
||||
);
|
||||
element.element.type = type;
|
||||
element.type = type;
|
||||
}
|
||||
element.hasImplicitType = hasImplicitType;
|
||||
element.typeParameters = typeParameters;
|
||||
|
||||
@@ -422,7 +422,6 @@ class BundleWriter {
|
||||
void _writeFieldFragment(FieldFragmentImpl fragment) {
|
||||
_writeTemplateFragment(fragment, () {
|
||||
_resolutionSink._writeMetadata(fragment.metadata);
|
||||
_resolutionSink.writeType(fragment.type);
|
||||
_resolutionSink._writeOptionalNode(fragment.constantInitializer);
|
||||
});
|
||||
}
|
||||
@@ -644,7 +643,7 @@ class BundleWriter {
|
||||
|
||||
_writeTypeParameters(element.typeParameters, () {
|
||||
_writeList(element.parameters, _writeParameterElement);
|
||||
_resolutionSink.writeType(element.type2);
|
||||
_resolutionSink.writeType(element.element.type);
|
||||
_resolutionSink._writeOptionalNode(element.constantInitializer);
|
||||
|
||||
if (element is FieldFormalParameterFragmentImpl) {
|
||||
@@ -741,7 +740,6 @@ class BundleWriter {
|
||||
void _writeTopLevelVariableFragment(TopLevelVariableFragmentImpl fragment) {
|
||||
_writeTemplateFragment(fragment, () {
|
||||
_resolutionSink._writeMetadata(fragment.metadata);
|
||||
_resolutionSink.writeType(fragment.type);
|
||||
_resolutionSink._writeOptionalNode(fragment.constantInitializer);
|
||||
});
|
||||
}
|
||||
@@ -1011,7 +1009,7 @@ class ResolutionSink extends _SummaryDataWriter {
|
||||
writeBool(parameter.hasImplicitType);
|
||||
writeBool(parameter.isInitializingFormal);
|
||||
_writeTypeParameters(parameter.typeParameters, () {
|
||||
writeType(parameter.type);
|
||||
writeType(parameter.element.type);
|
||||
_writeFragmentName(parameter);
|
||||
_writeFormalParameters(
|
||||
parameter.parameters,
|
||||
|
||||
@@ -156,7 +156,6 @@ class _Node extends graph.Node<_Node> {
|
||||
var representationFragment = element.firstFragment.representation;
|
||||
var representationElement = representationFragment.element;
|
||||
|
||||
representationFragment.type = type;
|
||||
representationElement.type = type;
|
||||
// TODO(scheglov): we repeat similar code in many places
|
||||
representationElement.getter!.returnType = type;
|
||||
|
||||
@@ -179,10 +179,8 @@ class InstanceMemberInferrer {
|
||||
var returnType = combinedGetterType();
|
||||
accessor.returnType = returnType;
|
||||
accessor.element.returnType = returnType;
|
||||
// TODO(scheglov): store type in FieldElementImpl itself
|
||||
var fieldElement = accessor.element.variable as FieldElementImpl;
|
||||
fieldElement.type = returnType;
|
||||
fieldElement.firstFragment.type = returnType;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -194,10 +192,8 @@ class InstanceMemberInferrer {
|
||||
var returnType = combinedSetterType();
|
||||
accessor.returnType = returnType;
|
||||
accessor.element.returnType = returnType;
|
||||
// TODO(scheglov): store type in FieldElementImpl itself
|
||||
var fieldElement = accessor.element.variable as FieldElementImpl;
|
||||
fieldElement.type = returnType;
|
||||
fieldElement.firstFragment.type = returnType;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -226,11 +222,9 @@ class InstanceMemberInferrer {
|
||||
if (overriddenGetters.isNotEmpty && overriddenSetters.isEmpty) {
|
||||
var valueType = combinedGetterType();
|
||||
parameter.element.type = valueType;
|
||||
parameter.type = valueType;
|
||||
var fieldElement = accessor.element.variable as FieldElementImpl;
|
||||
if (fieldElement.getter == null) {
|
||||
fieldElement.type = valueType;
|
||||
fieldElement.firstFragment.type = valueType;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -246,7 +240,6 @@ class InstanceMemberInferrer {
|
||||
if (overriddenSetters.isNotEmpty) {
|
||||
var valueType = combinedSetterType();
|
||||
parameter.element.type = valueType;
|
||||
parameter.type = valueType;
|
||||
var fieldElement = accessor.element.variable as FieldElementImpl;
|
||||
fieldElement.type = valueType;
|
||||
return;
|
||||
@@ -399,16 +392,13 @@ class InstanceMemberInferrer {
|
||||
var field = parameter.field;
|
||||
if (field != null) {
|
||||
parameter.element.type = field.element.type;
|
||||
parameter.type = field.element.type;
|
||||
}
|
||||
} else if (parameter is SuperFormalParameterFragmentImpl) {
|
||||
var superParameter = parameter.element.superConstructorParameter;
|
||||
if (superParameter != null) {
|
||||
parameter.element.type = superParameter.type;
|
||||
parameter.type = superParameter.type;
|
||||
} else {
|
||||
parameter.element.type = DynamicTypeImpl.instance;
|
||||
parameter.type = DynamicTypeImpl.instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -548,7 +538,6 @@ class InstanceMemberInferrer {
|
||||
(parameter, baseParameter) {
|
||||
var type = substitution.substituteType(baseParameter.type);
|
||||
parameter.type = type;
|
||||
parameter.firstFragment.type = type;
|
||||
},
|
||||
);
|
||||
// Update arguments of `SuperConstructorInvocation` to have the types
|
||||
@@ -601,14 +590,11 @@ class InstanceMemberInferrer {
|
||||
);
|
||||
if (matchingParameter != null) {
|
||||
parameter.element.type = matchingParameter.type;
|
||||
parameter.type = matchingParameter.type;
|
||||
} else {
|
||||
parameter.element.type = DynamicTypeImpl.instance;
|
||||
parameter.type = DynamicTypeImpl.instance;
|
||||
}
|
||||
} else {
|
||||
parameter.element.type = DynamicTypeImpl.instance;
|
||||
parameter.type = DynamicTypeImpl.instance;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -794,7 +780,6 @@ class InstanceMemberInferrer {
|
||||
}
|
||||
|
||||
static void _setFieldType(FieldFragmentImpl field, TypeImpl type) {
|
||||
field.type = type;
|
||||
field.element.type = type;
|
||||
// TODO(scheglov): We repeat this code.
|
||||
field.element.getter?.returnType = type;
|
||||
@@ -805,7 +790,6 @@ class InstanceMemberInferrer {
|
||||
setterElement.returnType = VoidTypeImpl.instance;
|
||||
setterElement.firstFragment.returnType = VoidTypeImpl.instance;
|
||||
setterElement.valueFormalParameter.type = type;
|
||||
setterElement.valueFormalParameter.firstFragment.type = type;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,7 +213,6 @@ class LibraryBuilder {
|
||||
),
|
||||
);
|
||||
enum_.valuesTypeNode.type = valuesType;
|
||||
enum_.valuesElement.type = valuesType;
|
||||
enum_.valuesElement.element.type = valuesType;
|
||||
// TODO(scheglov): We repeat this code.
|
||||
enum_.valuesElement.element.getter!.returnType = valuesType;
|
||||
|
||||
@@ -184,7 +184,6 @@ class TypesBuilder {
|
||||
case GetterElementImpl():
|
||||
element.returnType = returnType;
|
||||
(element.variable as TopLevelVariableElementImpl).type = returnType;
|
||||
element.variable!.firstFragment.type = returnType;
|
||||
case SetterElementImpl():
|
||||
element.returnType = returnType;
|
||||
var valueElement =
|
||||
@@ -196,13 +195,10 @@ class TypesBuilder {
|
||||
var valueNodeType = valueNodeElement?.type;
|
||||
var valueType = valueNodeType ?? InvalidTypeImpl.instance;
|
||||
valueElement?.type = valueType;
|
||||
valueElement?.firstFragment.type = valueType;
|
||||
|
||||
var variableElement =
|
||||
element.variable as TopLevelVariableElementImpl;
|
||||
var variableElement = element.variable as TopLevelVariableElementImpl;
|
||||
if (variableElement.isSynthetic) {
|
||||
variableElement.type = valueType;
|
||||
variableElement.firstFragment.type = valueType;
|
||||
}
|
||||
case TopLevelFunctionElementImpl():
|
||||
element.returnType = returnType;
|
||||
@@ -233,7 +229,6 @@ class TypesBuilder {
|
||||
case GetterElementImpl():
|
||||
element.returnType = returnType;
|
||||
(element.variable as FieldElementImpl).type = returnType;
|
||||
element.variable!.firstFragment.type = returnType;
|
||||
case SetterElementImpl():
|
||||
element.returnType = returnType;
|
||||
var valueElement =
|
||||
@@ -244,12 +239,10 @@ class TypesBuilder {
|
||||
var valueNodeType = valueNodeElement?.type;
|
||||
var valueType = valueNodeType ?? InvalidTypeImpl.instance;
|
||||
valueElement?.type = valueType;
|
||||
valueElement?.firstFragment.type = valueType;
|
||||
|
||||
var variableElement = element.variable as FieldElementImpl;
|
||||
if (variableElement.isSynthetic && variableElement.getter == null) {
|
||||
variableElement.type = valueType;
|
||||
variableElement.firstFragment.type = valueType;
|
||||
}
|
||||
case MethodElementImpl():
|
||||
element.returnType = returnType;
|
||||
@@ -259,7 +252,6 @@ class TypesBuilder {
|
||||
} else if (node is SimpleFormalParameterImpl) {
|
||||
var fragment = node.declaredFragment!;
|
||||
fragment.element.type = node.type?.type ?? _dynamicType;
|
||||
fragment.type = node.type?.type ?? _dynamicType;
|
||||
} else if (node is SuperFormalParameterImpl) {
|
||||
_superFormalParameter(node);
|
||||
} else if (node is TypeParameterImpl) {
|
||||
@@ -270,7 +262,6 @@ class TypesBuilder {
|
||||
for (var variable in node.variables) {
|
||||
var variableFragment = variable.declaredFragment!;
|
||||
var variableElement = variableFragment.element;
|
||||
variableFragment.type = type;
|
||||
variableElement.type = type;
|
||||
if (variableElement is PropertyInducingElementImpl) {
|
||||
if (variableElement.getter case var getterElement?) {
|
||||
@@ -283,10 +274,6 @@ class TypesBuilder {
|
||||
(setterElement.formalParameters.single
|
||||
as FormalParameterElementImpl)
|
||||
.type = type;
|
||||
(setterElement.formalParameters.single
|
||||
as FormalParameterElementImpl)
|
||||
.firstFragment
|
||||
.type = type;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -342,10 +329,8 @@ class TypesBuilder {
|
||||
_nullability(node, node.question != null),
|
||||
);
|
||||
fragment.element.type = type;
|
||||
fragment.type = type;
|
||||
} else {
|
||||
fragment.element.type = node.type?.type ?? _dynamicType;
|
||||
fragment.type = node.type?.type ?? _dynamicType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,7 +358,6 @@ class TypesBuilder {
|
||||
);
|
||||
var fragment = node.declaredFragment!;
|
||||
fragment.element.type = type;
|
||||
fragment.type = type;
|
||||
}
|
||||
|
||||
void _genericFunctionType(GenericFunctionTypeImpl node) {
|
||||
@@ -429,10 +413,8 @@ class TypesBuilder {
|
||||
_nullability(node, node.question != null),
|
||||
);
|
||||
fragment.element.type = type;
|
||||
fragment.type = type;
|
||||
} else {
|
||||
fragment.element.type = node.type?.type ?? _dynamicType;
|
||||
fragment.type = node.type?.type ?? _dynamicType;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1049,7 +1049,7 @@ class _MockSdkElementsBuilder {
|
||||
element.setter = setterElement;
|
||||
}
|
||||
|
||||
fragment.type = type;
|
||||
element.type = type;
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@@ -1096,7 +1096,7 @@ class _MockSdkElementsBuilder {
|
||||
);
|
||||
fieldFragment.isStatic = isStatic;
|
||||
fieldFragment.isSynthetic = true;
|
||||
fieldFragment.type = type;
|
||||
fieldElement.type = type;
|
||||
|
||||
var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null);
|
||||
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
|
||||
@@ -1273,7 +1273,7 @@ class _MockSdkElementsBuilder {
|
||||
..isSynthetic = true;
|
||||
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
|
||||
element.getter = getterElement;
|
||||
fragment.type = type;
|
||||
element.type = type;
|
||||
return fragment;
|
||||
}
|
||||
|
||||
|
||||
@@ -247,13 +247,16 @@ mixin ElementsTypesMixin {
|
||||
fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
|
||||
fragment.interfaces = interfaces;
|
||||
|
||||
var field = FieldFragmentImpl(
|
||||
var fieldFragment = FieldFragmentImpl(
|
||||
name: representationName,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
FieldElementImpl(reference: Reference.root(), firstFragment: field);
|
||||
field.type = representationType;
|
||||
fragment.fields = [field];
|
||||
var fieldElement = FieldElementImpl(
|
||||
reference: Reference.root(),
|
||||
firstFragment: fieldFragment,
|
||||
);
|
||||
fieldElement.type = representationType;
|
||||
fragment.fields = [fieldFragment];
|
||||
|
||||
fragment.typeErasure = representationType;
|
||||
|
||||
@@ -281,7 +284,6 @@ mixin ElementsTypesMixin {
|
||||
name: representationName,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fieldFragment.type = representationType;
|
||||
fragment.fields = [fieldFragment];
|
||||
|
||||
var fieldElement = FieldElementImpl(
|
||||
|
||||
Reference in New Issue
Block a user