Skip to content

Commit 9e76913

Browse files
committed
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 <[email protected]>
1 parent 5398596 commit 9e76913

15 files changed

+17
-102
lines changed

pkg/analyzer/lib/src/dart/analysis/driver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ testFineAfterLibraryAnalyzerHook;
109109
// TODO(scheglov): Clean up the list of implicitly analyzed files.
110110
class AnalysisDriver {
111111
/// The version of data format, should be incremented on every format change.
112-
static const int DATA_VERSION = 499;
112+
static const int DATA_VERSION = 502;
113113

114114
/// The number of exception contexts allowed to write. Once this field is
115115
/// zero, we stop writing any new exception contexts in this process.

pkg/analyzer/lib/src/dart/element/display_string_builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ class ElementDisplayStringBuilder {
187187

188188
_writeTypeParameters(element.typeParameters);
189189
_write('(');
190-
_writeType(element.representation.type);
190+
_writeType(element.representation.element.type);
191191
_write(' ');
192192
_write(element.representation.name ?? '<null-name}>');
193193
_write(')');
@@ -431,7 +431,7 @@ class ElementDisplayStringBuilder {
431431
}
432432

433433
void writeVariableElement(VariableFragmentImpl element) {
434-
_writeType(element.type);
434+
_writeType(element.element.type);
435435
_write(' ');
436436
_write(element.displayName);
437437
}

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -497,9 +497,7 @@ class ClassElementImpl extends InterfaceElementImpl implements ClassElement {
497497
formalParameterFragment,
498498
);
499499
formalParameterElements.add(formalParameterElement);
500-
501500
formalParameterElement.type = superFormalParameter.type;
502-
formalParameterFragment.type = superFormalParameter.type;
503501

504502
superInvocationArguments.add(
505503
SimpleIdentifierImpl(
@@ -9026,7 +9024,6 @@ abstract class PropertyInducingElementImpl extends VariableElementImpl
90269024
var type = firstFragment.typeInference?.perform();
90279025
type ??= InvalidTypeImpl.instance;
90289026
_type = type;
9029-
firstFragment._type = type;
90309027
shouldUseTypeForInitializerInference = false;
90319028

90329029
// TODO(scheglov): We repeat this code.
@@ -9041,9 +9038,6 @@ abstract class PropertyInducingElementImpl extends VariableElementImpl
90419038
setterElement.firstFragment.returnType = VoidTypeImpl.instance;
90429039
(setterElement.formalParameters.single as FormalParameterElementImpl)
90439040
.type = type;
9044-
(setterElement.formalParameters.single as FormalParameterElementImpl)
9045-
.firstFragment
9046-
.type = type;
90479041
}
90489042
}
90499043

@@ -9132,12 +9126,6 @@ abstract class PropertyInducingFragmentImpl
91329126
@Deprecated('Use metadata instead')
91339127
@override
91349128
MetadataImpl get metadata2 => metadata;
9135-
9136-
@override
9137-
TypeImpl get type {
9138-
_ensureReadResolution();
9139-
return _type!;
9140-
}
91419129
}
91429130

91439131
/// Common base class for all analyzer-internal classes that implement
@@ -10537,9 +10525,6 @@ abstract class VariableElementImpl extends ElementImpl
1053710525

1053810526
abstract class VariableFragmentImpl extends FragmentImpl
1053910527
implements AnnotatableFragmentImpl, VariableFragment {
10540-
/// The type of this variable.
10541-
TypeImpl? _type;
10542-
1054310528
/// If this element represents a constant variable, and it has an initializer,
1054410529
/// a copy of the initializer for the constant. Otherwise `null`.
1054510530
///
@@ -10655,18 +10640,6 @@ abstract class VariableFragmentImpl extends FragmentImpl
1065510640
throw StateError('($runtimeType) $this');
1065610641
}
1065710642

10658-
/// The declared type of this variable.
10659-
// TODO(scheglov): make it nullable and turn into field
10660-
TypeImpl get type => _type!;
10661-
10662-
set type(TypeImpl type) {
10663-
_type = type;
10664-
}
10665-
10666-
/// The declared type of this variable.
10667-
// TODO(scheglov): turn into field
10668-
TypeImpl? get type2 => _type;
10669-
1067010643
@override
1067110644
void appendTo(ElementDisplayStringBuilder builder) {
1067210645
builder.writeVariableElement(this);

pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,6 @@ class InheritanceManager3 {
10311031
assert(fieldReference.element == null);
10321032
FieldElementImpl(reference: fieldReference, firstFragment: resultField);
10331033

1034-
resultField.type = executable.formalParameters[0].type;
10351034
return result;
10361035
}
10371036

@@ -1162,11 +1161,9 @@ class InheritanceManager3 {
11621161
resultFragment.element.variable = fieldElement;
11631162

11641163
if (firstElement is GetterElement) {
1165-
field.type = resultFragment.returnType;
11661164
fieldElement.type = resultFragment.returnType;
11671165
} else {
11681166
var type = resultFragment.parameters[0].element.type;
1169-
field.type = type;
11701167
fieldElement.type = type;
11711168
}
11721169

pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ class FunctionExpressionResolver {
114114
}
115115
if (inferredType is! DynamicType) {
116116
p.type = inferredType;
117-
p.firstFragment.type = inferredType;
118117
}
119118
}
120119
}

pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
247247
fragment.hasImplicitType = true;
248248
fragment.element.type = _typeProvider.objectType;
249249
} else {
250-
fragment.type = exceptionTypeNode.typeOrThrow;
251250
fragment.element.type = exceptionTypeNode.typeOrThrow;
252251
}
253252

@@ -398,7 +397,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
398397

399398
if (node.type case var typeNode?) {
400399
typeNode.accept(this);
401-
fragment.type = typeNode.typeOrThrow;
402400
fragment.element.type = typeNode.typeOrThrow;
403401
} else {
404402
fragment.hasImplicitType = true;
@@ -426,7 +424,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
426424
_define(fragment.element);
427425
fragment.hasImplicitType = node.type == null;
428426
if (node.type case var typeNode?) {
429-
fragment.type = typeNode.typeOrThrow;
430427
fragment.element.type = typeNode.typeOrThrow;
431428
}
432429
node.declaredFragment = fragment;
@@ -667,7 +664,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
667664
} else {
668665
// Only for recovery, this should not happen in valid code.
669666
fragment.element.type = node.type?.type ?? _dynamicType;
670-
fragment.type = node.type?.type ?? _dynamicType;
671667
_withElementWalker(null, () {
672668
node.parameters?.accept(this);
673669
});
@@ -895,7 +891,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
895891
nullabilitySuffix: _getNullability(node.question != null),
896892
);
897893
fragment.element.type = type;
898-
fragment.type = type;
899894
}
900895
});
901896
},
@@ -1274,7 +1269,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
12741269
node.type?.accept(this);
12751270
if (_elementWalker == null) {
12761271
fragment.element.type = node.type?.type ?? _dynamicType;
1277-
fragment.type = node.type?.type ?? _dynamicType;
12781272
}
12791273

12801274
_setOrCreateMetadataElements(fragment, node.metadata);
@@ -1332,7 +1326,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
13321326
} else {
13331327
// Only for recovery, this should not happen in valid code.
13341328
element.element.type = node.type?.type ?? _dynamicType;
1335-
element.type = node.type?.type ?? _dynamicType;
13361329
_withElementWalker(null, () {
13371330
node.parameters?.accept(this);
13381331
});
@@ -1445,7 +1438,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
14451438
localFragment.hasInitializer = initializerNode != null;
14461439
if (varList.type case var typeNode?) {
14471440
var type = typeNode.typeOrThrow;
1448-
localFragment.type = type;
14491441
localFragment.element.type = type;
14501442
} else {
14511443
localFragment.hasImplicitType = true;
@@ -2028,9 +2020,7 @@ class _VariableBinder
20282020
),
20292021
),
20302022
);
2031-
resultFragment
2032-
..enclosingFragment = first.firstFragment.enclosingFragment
2033-
..type = InvalidTypeImpl.instance;
2023+
resultFragment.enclosingFragment = first.firstFragment.enclosingFragment;
20342024

20352025
return resultFragment.element;
20362026
}

pkg/analyzer/lib/src/summary2/ast_binary_reader.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,6 @@ class AstBinaryReader {
436436
}
437437
node.declaredFragment = fragment;
438438
fragment.element.type = nonDefaultElement.element.type;
439-
fragment.type = nonDefaultElement.element.type;
440439

441440
return node;
442441
}
@@ -1227,7 +1226,6 @@ class AstBinaryReader {
12271226
parameterKind: node.kind,
12281227
);
12291228
fragment.element.type = actualType;
1230-
fragment.type = actualType;
12311229
node.declaredFragment = fragment;
12321230

12331231
return node;

pkg/analyzer/lib/src/summary2/bundle_reader.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,6 @@ class LibraryReader {
727727
reader._addTypeParameters2(enclosingElement.typeParameters);
728728

729729
_readFragmentMetadata(fragment, reader);
730-
fragment.type = reader.readRequiredType();
731730
if (reader.readOptionalExpression() case var initializer?) {
732731
fragment.constantInitializer = initializer;
733732
ConstantContextForExpressionImpl(fragment, initializer);
@@ -748,8 +747,6 @@ class LibraryReader {
748747
_readFormalParameters2(unitElement, reader, parameter.parameters);
749748
var type = reader.readType() ?? InvalidTypeImpl.instance;
750749
parameter.element.type = type;
751-
// TODO(scheglov): make the `type` property optional
752-
parameter.type = type;
753750
parameter.constantInitializer = reader.readOptionalExpression();
754751
if (parameter is FieldFormalParameterFragmentImpl) {
755752
// TODO(scheglov): use element
@@ -1295,7 +1292,6 @@ class LibraryReader {
12951292
readResolution: (fragment, reader) {
12961293
reader.currentLibraryFragment = fragment.libraryFragment;
12971294
_readFragmentMetadata(fragment, reader);
1298-
fragment.type = reader.readRequiredType();
12991295
if (reader.readOptionalExpression() case var initializer?) {
13001296
fragment.constantInitializer = initializer;
13011297
ConstantContextForExpressionImpl(fragment, initializer);
@@ -1809,7 +1805,6 @@ class ResolutionReader {
18091805
parameterKind: kind,
18101806
);
18111807
element.element.type = type;
1812-
element.type = type;
18131808
} else {
18141809
element = FormalParameterFragmentImpl(
18151810
firstTokenOffset: null,
@@ -1818,7 +1813,6 @@ class ResolutionReader {
18181813
parameterKind: kind,
18191814
);
18201815
element.element.type = type;
1821-
element.type = type;
18221816
}
18231817
element.hasImplicitType = hasImplicitType;
18241818
element.typeParameters = typeParameters;

pkg/analyzer/lib/src/summary2/bundle_writer.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,6 @@ class BundleWriter {
422422
void _writeFieldFragment(FieldFragmentImpl fragment) {
423423
_writeTemplateFragment(fragment, () {
424424
_resolutionSink._writeMetadata(fragment.metadata);
425-
_resolutionSink.writeType(fragment.type);
426425
_resolutionSink._writeOptionalNode(fragment.constantInitializer);
427426
});
428427
}
@@ -644,7 +643,7 @@ class BundleWriter {
644643

645644
_writeTypeParameters(element.typeParameters, () {
646645
_writeList(element.parameters, _writeParameterElement);
647-
_resolutionSink.writeType(element.type2);
646+
_resolutionSink.writeType(element.element.type);
648647
_resolutionSink._writeOptionalNode(element.constantInitializer);
649648

650649
if (element is FieldFormalParameterFragmentImpl) {
@@ -741,7 +740,6 @@ class BundleWriter {
741740
void _writeTopLevelVariableFragment(TopLevelVariableFragmentImpl fragment) {
742741
_writeTemplateFragment(fragment, () {
743742
_resolutionSink._writeMetadata(fragment.metadata);
744-
_resolutionSink.writeType(fragment.type);
745743
_resolutionSink._writeOptionalNode(fragment.constantInitializer);
746744
});
747745
}
@@ -1011,7 +1009,7 @@ class ResolutionSink extends _SummaryDataWriter {
10111009
writeBool(parameter.hasImplicitType);
10121010
writeBool(parameter.isInitializingFormal);
10131011
_writeTypeParameters(parameter.typeParameters, () {
1014-
writeType(parameter.type);
1012+
writeType(parameter.element.type);
10151013
_writeFragmentName(parameter);
10161014
_writeFormalParameters(
10171015
parameter.parameters,

pkg/analyzer/lib/src/summary2/extension_type.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ class _Node extends graph.Node<_Node> {
156156
var representationFragment = element.firstFragment.representation;
157157
var representationElement = representationFragment.element;
158158

159-
representationFragment.type = type;
160159
representationElement.type = type;
161160
// TODO(scheglov): we repeat similar code in many places
162161
representationElement.getter!.returnType = type;

0 commit comments

Comments
 (0)