Skip to content

Commit fc5aa1d

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Improve types of enclosingElement, remove some casts.
Change-Id: I594a7d650eac56d0d54e34578600d979bf7119d4 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/445322 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Johnni Winther <[email protected]>
1 parent e6a9ebb commit fc5aa1d

File tree

3 files changed

+18
-18
lines changed

3 files changed

+18
-18
lines changed

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2626,8 +2626,9 @@ class FieldElementImpl extends PropertyInducingElementImpl
26262626
FieldElementImpl get baseElement => this;
26272627

26282628
@override
2629-
InstanceElement get enclosingElement =>
2630-
(firstFragment.enclosingFragment as InstanceFragment).element;
2629+
InstanceElementImpl get enclosingElement {
2630+
return firstFragment.enclosingFragment.element;
2631+
}
26312632

26322633
@Deprecated('Use enclosingElement instead')
26332634
@override
@@ -2854,6 +2855,11 @@ class FieldFragmentImpl extends PropertyInducingFragmentImpl
28542855
@override
28552856
FieldFragmentImpl get declaration => this;
28562857

2858+
@override
2859+
InstanceFragmentImpl get enclosingFragment {
2860+
return super.enclosingFragment as InstanceFragmentImpl;
2861+
}
2862+
28572863
/// Whether the type of this fragment references a type parameter of the
28582864
/// enclosing element. This includes not only explicitly specified type
28592865
/// annotations, but also inferred types.
@@ -7391,8 +7397,9 @@ class MethodElementImpl extends ExecutableElementImpl
73917397
}
73927398

73937399
@override
7394-
Element? get enclosingElement =>
7395-
(firstFragment.enclosingFragment as InstanceFragment).element;
7400+
InstanceElementImpl get enclosingElement {
7401+
return firstFragment.enclosingFragment.element;
7402+
}
73967403

73977404
@Deprecated('Use enclosingElement instead')
73987405
@override

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

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,7 @@ class LibraryReader {
352352
// TODO(scheglov): formal parameters
353353
element.deferReadResolution(
354354
_createDeferredReadResolutionCallback((reader) {
355-
var enclosingElement =
356-
element.enclosingElement as InstanceElementImpl;
355+
var enclosingElement = element.enclosingElement;
357356
reader._addTypeParameters2(enclosingElement.typeParameters);
358357
element.returnType = reader.readRequiredType();
359358
element.superConstructor = reader.readConstructorElementMixin();
@@ -379,8 +378,7 @@ class LibraryReader {
379378
return fragment;
380379
},
381380
readResolution: (fragment, reader) {
382-
var enclosingElement =
383-
fragment.element.enclosingElement as InstanceElementImpl;
381+
var enclosingElement = fragment.element.enclosingElement;
384382
reader._addTypeParameters2(enclosingElement.typeParameters);
385383

386384
_readTypeParameters2(
@@ -689,8 +687,7 @@ class LibraryReader {
689687

690688
element.deferReadResolution(
691689
_createDeferredReadResolutionCallback((reader) {
692-
var enclosingElement =
693-
element.enclosingElement as InstanceElementImpl;
690+
var enclosingElement = element.enclosingElement;
694691
reader._addTypeParameters2(enclosingElement.typeParameters);
695692
element.type = reader.readRequiredType();
696693
}),
@@ -709,8 +706,7 @@ class LibraryReader {
709706
return fragment;
710707
},
711708
readResolution: (fragment, reader) {
712-
var enclosingElement =
713-
fragment.element.enclosingElement as InstanceElementImpl;
709+
var enclosingElement = fragment.element.enclosingElement;
714710
reader._addTypeParameters2(enclosingElement.typeParameters);
715711

716712
fragment.metadata = reader._readMetadata();
@@ -903,8 +899,7 @@ class LibraryReader {
903899
// TODO(scheglov): formal parameters
904900
element.deferReadResolution(
905901
_createDeferredReadResolutionCallback((reader) {
906-
var enclosingElement =
907-
element.enclosingElement as InstanceElementImpl;
902+
var enclosingElement = element.enclosingElement;
908903
reader._addTypeParameters2(enclosingElement.typeParameters);
909904

910905
reader._addTypeParameters2(element.typeParameters);
@@ -929,8 +924,7 @@ class LibraryReader {
929924
return fragment;
930925
},
931926
readResolution: (fragment, reader) {
932-
var enclosingElement =
933-
fragment.element.enclosingElement as InstanceElementImpl;
927+
var enclosingElement = fragment.element.enclosingElement;
934928
reader._addTypeParameters2(enclosingElement.typeParameters);
935929

936930
_readTypeParameters2(

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,7 @@ class ElementBuilder {
292292
FragmentImpl? lastFieldFragment,
293293
FieldFragmentImpl fieldFragment,
294294
) {
295-
var instanceFragment =
296-
fieldFragment.enclosingFragment as InstanceFragmentImpl;
295+
var instanceFragment = fieldFragment.enclosingFragment;
297296
instanceFragment.addField(fieldFragment);
298297

299298
if (fieldFragment.isAugmentation &&

0 commit comments

Comments
 (0)