Skip to content

Commit f006e43

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate FlowAnalysisHelper.
Change-Id: I34bf657dbf7eb9ad4fc7b207e07d282df70ff54d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409240 Reviewed-by: Phil Quitslund <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent a4a4ca8 commit f006e43

File tree

4 files changed

+35
-29
lines changed

4 files changed

+35
-29
lines changed

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

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
/// @docImport 'package:analyzer/src/generated/resolver.dart';
86
library;
97

@@ -16,7 +14,6 @@ import 'package:analyzer/dart/analysis/features.dart';
1614
import 'package:analyzer/dart/ast/syntactic_entity.dart';
1715
import 'package:analyzer/dart/ast/token.dart';
1816
import 'package:analyzer/dart/ast/visitor.dart';
19-
import 'package:analyzer/dart/element/element.dart';
2017
import 'package:analyzer/dart/element/element2.dart';
2118
import 'package:analyzer/dart/element/nullability_suffix.dart';
2219
import 'package:analyzer/dart/element/type.dart';
@@ -213,7 +210,7 @@ class FlowAnalysisHelper {
213210
}
214211

215212
void breakStatement(BreakStatement node) {
216-
var target = getLabelTarget(node, node.label?.staticElement, isBreak: true);
213+
var target = getLabelTarget(node, node.label?.element, isBreak: true);
217214
flow!.handleBreak(target);
218215
}
219216

@@ -229,8 +226,7 @@ class FlowAnalysisHelper {
229226
}
230227

231228
void continueStatement(ContinueStatement node) {
232-
var target =
233-
getLabelTarget(node, node.label?.staticElement, isBreak: false);
229+
var target = getLabelTarget(node, node.label?.element, isBreak: false);
234230
flow!.handleContinue(target);
235231
}
236232

@@ -380,7 +376,7 @@ class FlowAnalysisHelper {
380376
/// not specify a label), so the default enclosing target is returned.
381377
///
382378
/// [isBreak] is `true` for `break`, and `false` for `continue`.
383-
static StatementImpl? getLabelTarget(AstNode? node, Element? element,
379+
static StatementImpl? getLabelTarget(AstNode? node, Element2? element,
384380
{required bool isBreak}) {
385381
for (; node != null; node = node.parent) {
386382
if (element == null) {
@@ -423,9 +419,9 @@ class FlowAnalysisHelper {
423419
return null;
424420
}
425421

426-
static bool _hasLabel(List<Label> labels, Element element) {
422+
static bool _hasLabel(List<Label> labels, Element2 element) {
427423
for (var nodeLabel in labels) {
428-
if (identical(nodeLabel.label.staticElement, element)) {
424+
if (identical(nodeLabel.label.element, element)) {
429425
return true;
430426
}
431427
}
@@ -604,7 +600,7 @@ class TypeSystemOperations
604600

605601
@override
606602
bool isExtensionTypeInternal(TypeImpl type) {
607-
return type is InterfaceType && type.element is ExtensionTypeElement;
603+
return type is InterfaceType && type.element3 is ExtensionTypeElement2;
608604
}
609605

610606
@override
@@ -617,7 +613,7 @@ class TypeSystemOperations
617613
return type is InterfaceType &&
618614
!type.isDartCoreNull &&
619615
!type.isDartAsyncFutureOr &&
620-
type.element is! ExtensionTypeElement;
616+
type.element3 is! ExtensionTypeElement2;
621617
}
622618

623619
@override
@@ -643,9 +639,9 @@ class TypeSystemOperations
643639

644640
@override
645641
bool isPropertyPromotable(Object property) {
646-
if (property is! PropertyAccessorElement) return false;
647-
var field = property.variable2;
648-
if (field is! FieldElement) return false;
642+
if (property is! PropertyAccessorElement2) return false;
643+
var field = property.variable3;
644+
if (field is! FieldElement2) return false;
649645
return field.isPromotable;
650646
}
651647

@@ -788,7 +784,7 @@ class TypeSystemOperations
788784
TypeImpl? matchTypeParameterBoundInternal(TypeImpl type) {
789785
if (type is TypeParameterTypeImpl &&
790786
type.nullabilitySuffix == NullabilitySuffix.none) {
791-
return type.promotedBound ?? type.element.bound;
787+
return type.promotedBound ?? type.element3.bound;
792788
} else {
793789
return null;
794790
}
@@ -848,13 +844,13 @@ class TypeSystemOperations
848844

849845
@override
850846
PropertyNonPromotabilityReason? whyPropertyIsNotPromotable(
851-
covariant ExecutableElement property) {
847+
covariant ExecutableElement2 property) {
852848
if (property.isPublic) return PropertyNonPromotabilityReason.isNotPrivate;
853-
if (property is! PropertyAccessorElement) {
849+
if (property is! PropertyAccessorElement2) {
854850
return PropertyNonPromotabilityReason.isNotField;
855851
}
856-
var field = property.variable2;
857-
if (field is! FieldElement) {
852+
var field = property.variable3;
853+
if (field is! FieldElement2) {
858854
return PropertyNonPromotabilityReason.isNotField;
859855
}
860856
if (field.isSynthetic && !property.isSynthetic) {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,7 @@ class MethodInvocationResolver with ScopeHelpers {
984984
? CascadePropertyTarget.singleton
985985
: ThisPropertyTarget.singleton,
986986
node.methodName.name,
987-
element,
987+
element.asElement2,
988988
SharedTypeView(getterReturnType))
989989
?.unwrapTypeView() ??
990990
targetType;
@@ -1010,7 +1010,7 @@ class MethodInvocationResolver with ScopeHelpers {
10101010
functionExpression,
10111011
SuperPropertyTarget.singleton,
10121012
node.methodName.name,
1013-
node.methodName.staticElement,
1013+
node.methodName.element,
10141014
SharedTypeView(getterReturnType))
10151015
?.unwrapTypeView() ??
10161016
targetType;
@@ -1020,7 +1020,7 @@ class MethodInvocationResolver with ScopeHelpers {
10201020
functionExpression,
10211021
ExpressionPropertyTarget(target),
10221022
node.methodName.name,
1023-
node.methodName.staticElement,
1023+
node.methodName.element,
10241024
SharedTypeView(getterReturnType))
10251025
?.unwrapTypeView() ??
10261026
targetType;

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,12 @@ class PropertyElementResolver with ScopeHelpers {
272272
!readElementRequested.isStatic) {
273273
var unpromotedType = readElementRequested.returnType;
274274
getType = _resolver.flowAnalysis.flow
275-
?.propertyGet(node, ThisPropertyTarget.singleton, node.name,
276-
readElementRequested, SharedTypeView(unpromotedType))
275+
?.propertyGet(
276+
node,
277+
ThisPropertyTarget.singleton,
278+
node.name,
279+
readElementRequested.asElement2,
280+
SharedTypeView(unpromotedType))
277281
?.unwrapTypeView() ??
278282
unpromotedType;
279283
}
@@ -511,7 +515,7 @@ class PropertyElementResolver with ScopeHelpers {
511515
as PropertyTarget<ExpressionImpl>
512516
: ExpressionPropertyTarget(target),
513517
propertyName.name,
514-
result.getter2?.asElement,
518+
result.getter2,
515519
SharedTypeView(unpromotedType))
516520
?.unwrapTypeView() ??
517521
unpromotedType;
@@ -849,7 +853,7 @@ class PropertyElementResolver with ScopeHelpers {
849853
node,
850854
SuperPropertyTarget.singleton,
851855
propertyName.name,
852-
readElement,
856+
readElement.asElement2,
853857
SharedTypeView(unpromotedType))
854858
?.unwrapTypeView() ??
855859
unpromotedType;

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,7 +1604,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
16041604
}
16051605

16061606
@override
1607-
(ExecutableElement?, SharedTypeView) resolveObjectPatternPropertyGet({
1607+
(ExecutableElement2?, SharedTypeView) resolveObjectPatternPropertyGet({
16081608
required covariant ObjectPatternImpl objectPattern,
16091609
required SharedTypeView receiverType,
16101610
required covariant SharedPatternField field,
@@ -1636,9 +1636,9 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
16361636
if (getter != null) {
16371637
fieldNode.element = getter;
16381638
if (getter is PropertyAccessorElementOrMember) {
1639-
return (getter, SharedTypeView(getter.returnType));
1639+
return (getter.asElement2, SharedTypeView(getter.returnType));
16401640
} else {
1641-
return (getter, SharedTypeView(getter.type));
1641+
return (getter.asElement2, SharedTypeView(getter.type));
16421642
}
16431643
}
16441644

@@ -5680,6 +5680,9 @@ class _WhyNotPromotedVisitor
56805680
List<DiagnosticMessage> visitPropertyNotPromotedForInherentReason(
56815681
PropertyNotPromotedForInherentReason reason) {
56825682
var receiverElement = reason.propertyMember;
5683+
if (receiverElement is PropertyAccessorElement2) {
5684+
receiverElement = receiverElement.asElement;
5685+
}
56835686
if (receiverElement is PropertyAccessorElement) {
56845687
var property = propertyReference = receiverElement;
56855688
var propertyName = reason.propertyName;
@@ -5717,6 +5720,9 @@ class _WhyNotPromotedVisitor
57175720
List<DiagnosticMessage> visitPropertyNotPromotedForNonInherentReason(
57185721
PropertyNotPromotedForNonInherentReason reason) {
57195722
var receiverElement = reason.propertyMember;
5723+
if (receiverElement is PropertyAccessorElement2) {
5724+
receiverElement = receiverElement.asElement;
5725+
}
57205726
if (receiverElement is PropertyAccessorElement) {
57215727
var property = propertyReference = receiverElement;
57225728
var propertyName = reason.propertyName;

0 commit comments

Comments
 (0)