Skip to content

Commit 283d315

Browse files
scheglovCommit Queue
authored andcommitted
Elements. AugmentedExtensionTypeElement remove primaryConstructor, representation, typeErasure.
Change-Id: I01c654429367575cf40e1cc41165aa6f7652a8c1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/414201 Reviewed-by: Paul Berry <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent c5e400c commit 283d315

File tree

10 files changed

+27
-53
lines changed

10 files changed

+27
-53
lines changed

pkg/analyzer/api.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3005,9 +3005,6 @@ package:analyzer/dart/element/element.dart:
30053005
AugmentedExtensionTypeElement (class extends Object implements AugmentedInterfaceElement):
30063006
new (constructor: AugmentedExtensionTypeElement Function())
30073007
firstFragment (getter: ExtensionTypeElement)
3008-
primaryConstructor (getter: ConstructorElement)
3009-
representation (getter: FieldElement)
3010-
typeErasure (getter: DartType)
30113008
AugmentedInstanceElement (class extends Object):
30123009
new (constructor: AugmentedInstanceElement Function())
30133010
accessors (getter: List<PropertyAccessorElement>)

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,17 +93,6 @@ abstract class AugmentedExtensionTypeElement
9393
implements AugmentedInterfaceElement {
9494
@override
9595
ExtensionTypeElement get firstFragment;
96-
97-
/// The primary constructor of this extension.
98-
ConstructorElement get primaryConstructor;
99-
100-
/// The representation of this extension.
101-
FieldElement get representation;
102-
103-
/// The extension type erasure, obtained by recursively replacing every
104-
/// subterm which is an extension type by the corresponding representation
105-
/// type.
106-
DartType get typeErasure;
10796
}
10897

10998
/// The result of applying augmentations to a [InstanceElement].

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ import 'package:meta/meta.dart';
100100
// TODO(scheglov): Clean up the list of implicitly analyzed files.
101101
class AnalysisDriver {
102102
/// The version of data format, should be incremented on every format change.
103-
static const int DATA_VERSION = 440;
103+
static const int DATA_VERSION = 441;
104104

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

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

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4176,6 +4176,9 @@ class ExtensionTypeElementImpl extends InterfaceElementImpl
41764176
implements ExtensionTypeElement, ExtensionTypeFragment {
41774177
late ExtensionTypeElementImpl2 augmentedInternal;
41784178

4179+
@override
4180+
late DartType typeErasure;
4181+
41794182
/// Whether the element has direct or indirect reference to itself,
41804183
/// in representation.
41814184
bool hasRepresentationSelfReference = false;
@@ -4212,7 +4215,7 @@ class ExtensionTypeElementImpl extends InterfaceElementImpl
42124215

42134216
@override
42144217
ConstructorElementImpl get primaryConstructor {
4215-
return element.primaryConstructor;
4218+
return constructors.first;
42164219
}
42174220

42184221
@override
@@ -4221,17 +4224,12 @@ class ExtensionTypeElementImpl extends InterfaceElementImpl
42214224

42224225
@override
42234226
FieldElementImpl get representation {
4224-
return element.representation;
4227+
return fields.first;
42254228
}
42264229

42274230
@override
42284231
FieldFragment get representation2 => representation as FieldFragment;
42294232

4230-
@override
4231-
DartType get typeErasure {
4232-
return element.typeErasure;
4233-
}
4234-
42354233
@Deprecated('Use Element2 and accept2() instead')
42364234
@override
42374235
T? accept<T>(ElementVisitor<T> visitor) {
@@ -4252,15 +4250,6 @@ class ExtensionTypeElementImpl2 extends InterfaceElementImpl2
42524250
@override
42534251
final ExtensionTypeElementImpl firstFragment;
42544252

4255-
@override
4256-
late ConstructorElementImpl primaryConstructor;
4257-
4258-
@override
4259-
late FieldElementImpl representation;
4260-
4261-
@override
4262-
late DartType typeErasure;
4263-
42644253
ExtensionTypeElementImpl2(this.reference, this.firstFragment) {
42654254
reference.element2 = this;
42664255
firstFragment.augmentedInternal = this;
@@ -4301,10 +4290,17 @@ class ExtensionTypeElementImpl2 extends InterfaceElementImpl2
43014290
}
43024291

43034292
@override
4304-
ConstructorElement2 get primaryConstructor2 => primaryConstructor.element;
4293+
ConstructorElement2 get primaryConstructor2 {
4294+
return firstFragment.primaryConstructor.element;
4295+
}
4296+
4297+
@override
4298+
FieldElement2OrMember get representation2 {
4299+
return firstFragment.representation.asElement2;
4300+
}
43054301

43064302
@override
4307-
FieldElement2OrMember get representation2 => representation.asElement2;
4303+
DartType get typeErasure => firstFragment.typeErasure;
43084304

43094305
@override
43104306
T? accept2<T>(ElementVisitor2<T> visitor) {

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -447,11 +447,8 @@ class ExtensionTypeElementLinkedData
447447
var augmented = element.augmentedInternal;
448448
augmented.fields = reader.readElementList();
449449
augmented.accessors = reader.readElementList();
450-
augmented
451-
..primaryConstructor = element.constructors.first
452-
..representation = element.fields.first
453-
..typeErasure = reader.readRequiredType();
454450
}
451+
element.typeErasure = reader.readRequiredType();
455452
applyConstantOffsets?.perform();
456453
}
457454
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,8 @@ class BundleWriter {
342342
var element = fragment.element;
343343
_resolutionSink._writeElementList(element.fields);
344344
_resolutionSink._writeElementList(element.accessors);
345-
_resolutionSink.writeType(element.typeErasure);
346345
}
346+
_resolutionSink.writeType(fragment.typeErasure);
347347

348348
_writeList(
349349
fragment.fields.where((e) => !e.isSynthetic).toList(),

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1779,8 +1779,6 @@ class ElementBuilder extends ThrowingAstVisitor<void> {
17791779
fieldCodeRangeLength,
17801780
);
17811781

1782-
extensionFragment.element.representation = fieldFragment;
1783-
17841782
{
17851783
String name;
17861784
int? periodOffset;
@@ -1818,8 +1816,6 @@ class ElementBuilder extends ThrowingAstVisitor<void> {
18181816
representation.constructorFragment = constructorFragment;
18191817
_linker.elementNodes[constructorFragment] = representation;
18201818
_enclosingContext.addConstructor(constructorFragment);
1821-
1822-
extensionFragment.element.primaryConstructor = constructorFragment;
18231819
}
18241820

18251821
representation.fieldType.accept(this);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class _ImplementsNode extends graph.Node<_ImplementsNode> {
8484
isEvaluated = true;
8585
element.hasImplementsSelfReference = true;
8686

87-
var representationType = element.representation.type;
87+
var representationType = element.firstFragment.representation.type;
8888
var typeSystem = element.library2.typeSystem;
8989

9090
var superInterface = typeSystem.isNonNullable(representationType)
@@ -151,8 +151,8 @@ class _Node extends graph.Node<_Node> {
151151
void _evaluateWithType(TypeImpl type) {
152152
var typeSystem = element.library2.typeSystem;
153153

154-
element.representation.type = type;
155-
element.typeErasure = type.extensionTypeErasure;
154+
element.firstFragment.representation.type = type;
155+
element.firstFragment.typeErasure = type.extensionTypeErasure;
156156
element.firstFragment.interfaces = element.interfaces
157157
.whereType<InterfaceType>()
158158
.where(typeSystem.isValidExtensionTypeSuperinterface)

pkg/analyzer/test/generated/elements_types_mixin.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,10 @@ mixin ElementsTypesMixin {
249249
field.type = representationType;
250250
fragment.fields = [field];
251251

252+
fragment.typeErasure = representationType;
253+
252254
var element = ExtensionTypeElementImpl2(Reference.root(), fragment);
253-
element
254-
..representation = field
255-
..typeErasure = representationType
256-
..fields = fragment.fields;
255+
element.fields = fragment.fields;
257256

258257
return fragment;
259258
}
@@ -274,11 +273,10 @@ mixin ElementsTypesMixin {
274273
field.type = representationType;
275274
fragment.fields = [field];
276275

276+
fragment.typeErasure = representationType;
277+
277278
var element = ExtensionTypeElementImpl2(Reference.root(), fragment);
278-
element
279-
..representation = field
280-
..typeErasure = representationType
281-
..fields = fragment.fields;
279+
element.fields = fragment.fields;
282280

283281
return element;
284282
}

pkg/linter/test/rules/camel_case_types_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ augment enum e {
4949
''');
5050
}
5151

52+
@SkippedTest() // TODO(scheglov): implement augmentation
5253
test_augmentationExtensionType_lowerCase() async {
5354
newFile('$testPackageLibPath/a.dart', r'''
5455
part 'test.dart';

0 commit comments

Comments
 (0)