5
5
import 'package:analyzer/dart/ast/ast.dart' ;
6
6
import 'package:analyzer/dart/ast/token.dart' ;
7
7
import 'package:analyzer/dart/ast/visitor.dart' ;
8
- import 'package:analyzer/dart/element/element .dart' ;
8
+ import 'package:analyzer/dart/element/element2 .dart' ;
9
9
10
10
import '../analyzer.dart' ;
11
11
import '../extensions.dart' ;
12
12
13
13
const _desc = r'Cascade consecutive method invocations on the same reference.' ;
14
14
15
- Element ? _getElementFromVariableDeclarationStatement (
15
+ Element2 ? _getElementFromVariableDeclarationStatement (
16
16
VariableDeclarationStatement statement) {
17
17
var variables = statement.variables.variables;
18
18
if (variables.length == 1 ) {
@@ -25,39 +25,39 @@ Element? _getElementFromVariableDeclarationStatement(
25
25
// In such a case, we should not return any cascadable element here.
26
26
return null ;
27
27
}
28
- return variable.declaredElement ;
28
+ return variable.declaredElement2 ?? variable.declaredFragment ? .element ;
29
29
}
30
30
return null ;
31
31
}
32
32
33
- ExecutableElement ? _getExecutableElementFromMethodInvocation (
33
+ ExecutableElement2 ? _getExecutableElementFromMethodInvocation (
34
34
MethodInvocation node) {
35
35
if (_isInvokedWithoutNullAwareOperator (node.operator )) {
36
- var executableElement = node.methodName.canonicalElement ;
37
- if (executableElement is ExecutableElement ) {
36
+ var executableElement = node.methodName.canonicalElement2 ;
37
+ if (executableElement is ExecutableElement2 ) {
38
38
return executableElement;
39
39
}
40
40
}
41
41
return null ;
42
42
}
43
43
44
- Element ? _getPrefixElementFromExpression (Expression rawExpression) {
44
+ Element2 ? _getPrefixElementFromExpression (Expression rawExpression) {
45
45
var expression = rawExpression.unParenthesized;
46
46
if (expression is PrefixedIdentifier ) {
47
- return expression.prefix.canonicalElement ;
47
+ return expression.prefix.canonicalElement2 ;
48
48
} else if (expression is PropertyAccess &&
49
49
_isInvokedWithoutNullAwareOperator (expression.operator ) &&
50
50
expression.target is SimpleIdentifier ) {
51
- return expression.target.canonicalElement ;
51
+ return expression.target.canonicalElement2 ;
52
52
}
53
53
return null ;
54
54
}
55
55
56
- Element ? _getTargetElementFromCascadeExpression (CascadeExpression node) =>
57
- node.target.canonicalElement ;
56
+ Element2 ? _getTargetElementFromCascadeExpression (CascadeExpression node) =>
57
+ node.target.canonicalElement2 ;
58
58
59
- Element ? _getTargetElementFromMethodInvocation (MethodInvocation node) =>
60
- node.target.canonicalElement ;
59
+ Element2 ? _getTargetElementFromMethodInvocation (MethodInvocation node) =>
60
+ node.target.canonicalElement2 ;
61
61
62
62
bool _isInvokedWithoutNullAwareOperator (Token ? token) =>
63
63
token? .type == TokenType .PERIOD ;
@@ -126,7 +126,7 @@ class _CascadableExpression {
126
126
/// in the right part of an assignment in a following expression that we would
127
127
/// like to join to this.
128
128
final bool isCritical;
129
- final Element ? element;
129
+ final Element2 ? element;
130
130
final List <AstNode > criticalNodes;
131
131
132
132
factory _CascadableExpression .fromExpressionStatement (
@@ -163,14 +163,14 @@ class _CascadableExpression {
163
163
var leftExpression = node.leftHandSide.unParenthesized;
164
164
if (leftExpression is SimpleIdentifier ) {
165
165
return _CascadableExpression ._internal (
166
- leftExpression.staticElement ? .canonicalElement , [node.rightHandSide],
166
+ leftExpression.element , [node.rightHandSide],
167
167
canReceive: node.operator .type != TokenType .QUESTION_QUESTION_EQ ,
168
168
isCritical: true );
169
169
}
170
170
// setters
171
171
var variable = _getPrefixElementFromExpression (leftExpression);
172
172
var canReceive = node.operator .type != TokenType .QUESTION_QUESTION_EQ &&
173
- variable is VariableElement &&
173
+ variable is VariableElement2 &&
174
174
! variable.isStatic;
175
175
return _CascadableExpression ._internal (variable, [node.rightHandSide],
176
176
canJoin: true , canReceive: canReceive, canBeCascaded: true );
@@ -201,12 +201,12 @@ class _CascadableExpression {
201
201
202
202
factory _CascadableExpression ._fromPrefixedIdentifier (
203
203
PrefixedIdentifier node) =>
204
- _CascadableExpression ._internal (node.prefix.canonicalElement , [],
204
+ _CascadableExpression ._internal (node.prefix.canonicalElement2 , [],
205
205
canJoin: true , canReceive: true , canBeCascaded: true );
206
206
207
207
factory _CascadableExpression ._fromPropertyAccess (PropertyAccess node) {
208
208
var targetIsSimple = node.target is SimpleIdentifier ;
209
- return _CascadableExpression ._internal (node.target.canonicalElement , [],
209
+ return _CascadableExpression ._internal (node.target.canonicalElement2 , [],
210
210
canJoin: targetIsSimple,
211
211
canReceive: targetIsSimple,
212
212
canBeCascaded: true );
@@ -248,7 +248,7 @@ class _NodeVisitor extends UnifyingAstVisitor<void> {
248
248
_NodeVisitor (this .expressionBox);
249
249
250
250
bool isCriticalNode (AstNode node) =>
251
- node.canonicalElement == expressionBox.element;
251
+ node.canonicalElement2 == expressionBox.element;
252
252
253
253
bool isOrHasCriticalNode (AstNode node) {
254
254
node.accept (this );
0 commit comments