Skip to content

Commit a84fe54

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate ResolverVisitor.enclosingExtension
Change-Id: Iaf2362062455835afdfe8f380c5e09ad5b722cf6 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409546 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 6450d76 commit a84fe54

File tree

5 files changed

+30
-15
lines changed

5 files changed

+30
-15
lines changed

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6481,8 +6481,7 @@ final class ExtensionDeclarationImpl extends CompilationUnitMemberImpl
64816481

64826482
@experimental
64836483
@override
6484-
ExtensionFragment? get declaredFragment =>
6485-
declaredElement as ExtensionFragment?;
6484+
ExtensionElementImpl? get declaredFragment => declaredElement;
64866485

64876486
@override
64886487
Token get endToken => rightBracket;
@@ -8319,11 +8318,8 @@ final class FunctionDeclarationImpl extends NamedCompilationUnitMemberImpl
83198318

83208319
@experimental
83218320
@override
8322-
ExecutableFragment? get declaredFragment {
8323-
if (declaredElement case ExecutableFragment fragment) {
8324-
return fragment;
8325-
}
8326-
return null;
8321+
ExecutableElementImpl? get declaredFragment {
8322+
return declaredElement;
83278323
}
83288324

83298325
@override
@@ -11910,8 +11906,7 @@ final class MethodDeclarationImpl extends ClassMemberImpl
1191011906

1191111907
@experimental
1191211908
@override
11913-
ExecutableFragment? get declaredFragment =>
11914-
declaredElement as ExecutableFragment?;
11909+
ExecutableElementImpl? get declaredFragment => declaredElement;
1191511910

1191611911
@override
1191711912
Token get endToken => body.endToken;

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3761,6 +3761,9 @@ abstract class ExecutableElementImpl extends _ExistingElementImpl
37613761
...parameters,
37623762
];
37633763

3764+
@override
3765+
ExecutableElementImpl2 get element;
3766+
37643767
@override
37653768
Element get enclosingElement3 {
37663769
return super.enclosingElement3!;
@@ -5247,7 +5250,7 @@ class FunctionElementImpl extends ExecutableElementImpl
52475250
// TODO(brianwilkerson): Use either `LocalFunctionElement` or
52485251
// `TopLevelFunctionElement` when this class is split.
52495252
@override
5250-
late ExecutableElement2 element;
5253+
late ExecutableElementImpl2 element;
52515254

52525255
/// Initialize a newly created function element to have the given [name] and
52535256
/// [offset].

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,7 @@ class FunctionExpressionResolver {
165165
}
166166

167167
void _resolve2(FunctionExpressionImpl node, DartType? imposedType) {
168-
var functionElement =
169-
node.declaredFragment!.element as ExecutableElementImpl2;
168+
var functionElement = node.declaredFragment!.element;
170169

171170
if (_shouldUpdateReturnType(node)) {
172171
var firstFragment =

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
176176

177177
/// The element representing the extension containing the AST nodes being
178178
/// visited, or `null` if we are not in the scope of an extension.
179-
ExtensionElementImpl? enclosingExtension;
179+
ExtensionElementImpl2? enclosingExtension;
180180

181181
/// The element representing the function containing the current node, or
182182
/// `null` if the current node is not contained in a function.
@@ -1350,7 +1350,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
13501350
}
13511351

13521352
if (parent is ExtensionDeclarationImpl) {
1353-
enclosingExtension = parent.declaredElement!;
1353+
enclosingExtension = parent.declaredFragment!.element;
13541354
return true;
13551355
}
13561356

@@ -2672,7 +2672,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
26722672
void visitExtensionDeclaration(covariant ExtensionDeclarationImpl node) {
26732673
var outerExtension = enclosingExtension;
26742674
try {
2675-
enclosingExtension = node.declaredElement!;
2675+
enclosingExtension = node.declaredFragment!.element;
26762676
checkUnreachableNode(node);
26772677
node.visitChildren(this);
26782678
elementResolver.visitExtensionDeclaration(node);

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ extension ConstructorElementExtension on ConstructorElement {
107107
}
108108
}
109109

110+
extension ConstructorElementImplExtension on ConstructorElementImpl {
111+
ConstructorElementImpl2 get asElement2 {
112+
return element;
113+
}
114+
}
115+
110116
extension Element2Extension on Element2 {
111117
/// Whether the element is effectively [internal].
112118
bool get isInternal {
@@ -352,6 +358,12 @@ extension ExecutableElementExtension on ExecutableElement {
352358
}
353359
}
354360

361+
extension ExecutableElementImplExtension on ExecutableElementImpl {
362+
ExecutableElementImpl2 get asElement2 {
363+
return element;
364+
}
365+
}
366+
355367
extension ExecutableElementOrNullExtension on ExecutableElement? {
356368
ExecutableElement2? get asElement2 {
357369
return this?.asElement2;
@@ -623,6 +635,12 @@ extension PropertyAccessorElementExtension on PropertyAccessorElement {
623635
}
624636
}
625637

638+
extension PropertyAccessorElementImplExtension on PropertyAccessorElementImpl {
639+
PropertyAccessorElementImpl2 get asElement2 {
640+
return element;
641+
}
642+
}
643+
626644
extension PropertyAccessorElementOrMemberExtension
627645
on PropertyAccessorElementOrMember {
628646
PropertyAccessorElement2OrMember get asElement2 {

0 commit comments

Comments
 (0)