API. Deprecate 'VariableDeclaration.declaredElement', use 'VariableDeclaration.declaredFragment'.
This makes API consistent. Bug: https://github.com/dart-lang/sdk/issues/61231 Change-Id: I841dc10cd2ef4b28286d374af26c079dcf69179e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/444863 Reviewed-by: Paul Berry <paulberry@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
committed by
Commit Queue
parent
caf912449d
commit
32124f25a0
@@ -787,7 +787,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
||||
exceptionParameter.name,
|
||||
HighlightRegionType.LOCAL_VARIABLE_DECLARATION,
|
||||
additionalSemanticTokenModifiers: _additionalModifiersForElement(
|
||||
exceptionParameter.declaredElement,
|
||||
exceptionParameter.declaredFragment?.element,
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -797,7 +797,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
||||
stackTraceParameter.name,
|
||||
HighlightRegionType.LOCAL_VARIABLE_DECLARATION,
|
||||
additionalSemanticTokenModifiers: _additionalModifiersForElement(
|
||||
stackTraceParameter.declaredElement,
|
||||
stackTraceParameter.declaredFragment?.element,
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -922,7 +922,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
||||
node.name,
|
||||
HighlightRegionType.LOCAL_VARIABLE_DECLARATION,
|
||||
additionalSemanticTokenModifiers: _additionalModifiersForElement(
|
||||
node.declaredElement,
|
||||
node.declaredFragment?.element,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -1831,7 +1831,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitVariableDeclaration(VariableDeclaration node) {
|
||||
var element = node.declaredFragment?.element ?? node.declaredElement;
|
||||
var element = node.declaredFragment?.element;
|
||||
if (element is FieldElement) {
|
||||
computer._addRegion_token(
|
||||
node.name,
|
||||
|
||||
@@ -335,7 +335,7 @@ class _DartInlayHintComputerVisitor extends GeneralizingAstVisitor<void> {
|
||||
return;
|
||||
}
|
||||
|
||||
var declaration = node.declaredElement;
|
||||
var declaration = node.declaredFragment?.element;
|
||||
if (declaration is LocalVariableElement) {
|
||||
_computer.addVariableTypePrefix(node.name, declaration.type);
|
||||
}
|
||||
@@ -350,7 +350,7 @@ class _DartInlayHintComputerVisitor extends GeneralizingAstVisitor<void> {
|
||||
return;
|
||||
}
|
||||
|
||||
var declaration = node.declaredElement;
|
||||
var declaration = node.declaredFragment?.element;
|
||||
if (declaration != null) {
|
||||
_computer.addVariableTypePrefix(node.name, declaration.type);
|
||||
}
|
||||
|
||||
@@ -147,10 +147,11 @@ class DartUnitOccurrencesComputerVisitor extends GeneralizingAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
|
||||
if (node.declaredElement case BindPatternVariableElement(:var join?)) {
|
||||
var declaredElement = node.declaredFragment!.element;
|
||||
if (declaredElement case BindPatternVariableElement(:var join?)) {
|
||||
_addOccurrence(join.baseElement, node.name);
|
||||
} else {
|
||||
_addOccurrence(node.declaredElement!, node.name);
|
||||
_addOccurrence(declaredElement, node.name);
|
||||
}
|
||||
|
||||
super.visitDeclaredVariablePattern(node);
|
||||
|
||||
@@ -294,7 +294,7 @@ class _InlineValueVisitor extends GeneralizingAstVisitor<void> {
|
||||
void visitDeclaredIdentifier(DeclaredIdentifier node) {
|
||||
var name = node.name;
|
||||
collector.recordVariableLookup(
|
||||
node.declaredElement,
|
||||
node.declaredFragment?.element,
|
||||
name.offset,
|
||||
name.length,
|
||||
);
|
||||
@@ -305,7 +305,7 @@ class _InlineValueVisitor extends GeneralizingAstVisitor<void> {
|
||||
void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
|
||||
var name = node.name;
|
||||
collector.recordVariableLookup(
|
||||
node.declaredElement,
|
||||
node.declaredFragment?.element,
|
||||
name.offset,
|
||||
name.length,
|
||||
);
|
||||
@@ -423,7 +423,7 @@ class _InlineValueVisitor extends GeneralizingAstVisitor<void> {
|
||||
void visitVariableDeclaration(VariableDeclaration node) {
|
||||
var name = node.name;
|
||||
collector.recordVariableLookup(
|
||||
node.declaredElement,
|
||||
node.declaredFragment?.element,
|
||||
name.offset,
|
||||
name.length,
|
||||
);
|
||||
|
||||
@@ -2500,12 +2500,12 @@ class DeclarationHelper {
|
||||
}
|
||||
|
||||
void _visitCatchClause(CatchClause node) {
|
||||
var exceptionElement = node.exceptionParameter?.declaredElement;
|
||||
var exceptionElement = node.exceptionParameter?.declaredFragment?.element;
|
||||
if (exceptionElement != null) {
|
||||
_suggestVariable(exceptionElement);
|
||||
}
|
||||
|
||||
var stackTraceElement = node.stackTraceParameter?.declaredElement;
|
||||
var stackTraceElement = node.stackTraceParameter?.declaredFragment?.element;
|
||||
if (stackTraceElement != null) {
|
||||
_suggestVariable(stackTraceElement);
|
||||
}
|
||||
@@ -2532,7 +2532,7 @@ class DeclarationHelper {
|
||||
}
|
||||
|
||||
void _visitDeclaredVariablePattern(DeclaredVariablePattern pattern) {
|
||||
var declaredElement = pattern.declaredElement;
|
||||
var declaredElement = pattern.declaredFragment?.element;
|
||||
if (declaredElement != null) {
|
||||
_suggestVariable(declaredElement);
|
||||
}
|
||||
@@ -2540,7 +2540,7 @@ class DeclarationHelper {
|
||||
|
||||
void _visitForLoopParts(ForLoopParts node) {
|
||||
if (node is ForEachPartsWithDeclaration) {
|
||||
var declaredElement = node.loopVariable.declaredElement;
|
||||
var declaredElement = node.loopVariable.declaredFragment?.element;
|
||||
if (declaredElement != null) {
|
||||
_suggestVariable(declaredElement);
|
||||
}
|
||||
@@ -2549,7 +2549,7 @@ class DeclarationHelper {
|
||||
} else if (node is ForPartsWithDeclarations) {
|
||||
var variables = node.variables;
|
||||
for (var variable in variables.variables) {
|
||||
var declaredElement = variable.declaredElement;
|
||||
var declaredElement = variable.declaredFragment?.element;
|
||||
if (declaredElement is LocalVariableElement) {
|
||||
_suggestVariable(declaredElement);
|
||||
}
|
||||
@@ -2660,8 +2660,8 @@ class DeclarationHelper {
|
||||
var variables = statement.variables;
|
||||
for (var variable in variables.variables) {
|
||||
if (variable.end < offset) {
|
||||
var declaredElement = variable.declaredElement;
|
||||
if (declaredElement != null) {
|
||||
var declaredElement = variable.declaredFragment?.element;
|
||||
if (declaredElement is LocalVariableElement) {
|
||||
_suggestVariable(declaredElement);
|
||||
}
|
||||
}
|
||||
@@ -2741,8 +2741,8 @@ class DeclarationHelper {
|
||||
if (child is VariableDeclaration) {
|
||||
var index = variables.indexOf(child);
|
||||
for (var i = index - 1; i >= 0; i--) {
|
||||
var element = variables[i].declaredElement;
|
||||
if (element != null) {
|
||||
var element = variables[i].declaredFragment?.element;
|
||||
if (element is LocalVariableElement) {
|
||||
_suggestVariable(element);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1262,7 +1262,7 @@ parent3: ${node.parent?.parent?.parent}
|
||||
if (pattern is AssignedVariablePattern) {
|
||||
element = pattern.element;
|
||||
} else if (pattern is DeclaredVariablePattern) {
|
||||
element = pattern.declaredElement;
|
||||
element = pattern.declaredFragment?.element;
|
||||
// } else if (pattern is RecordPattern) {
|
||||
// pattern.fields.map((e) => _requiredTypeOfPattern(e.pattern)).toList();
|
||||
} else if (pattern is ListPattern) {
|
||||
|
||||
@@ -149,10 +149,8 @@ class AddExplicitCast extends ResolvedCorrectionProducer {
|
||||
if (parent is AssignmentExpression && target == parent.rightHandSide) {
|
||||
toType = parent.writeType!;
|
||||
} else if (parent is VariableDeclaration && target == parent.initializer) {
|
||||
if (parent.declaredElement case var declaredElement?) {
|
||||
if (parent.declaredFragment?.element case var declaredElement?) {
|
||||
toType = declaredElement.type;
|
||||
} else if (parent.declaredFragment case var declaredFragment?) {
|
||||
toType = declaredFragment.element.type;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ class AddNullCheck extends ResolvedCorrectionProducer {
|
||||
toType = parent.realTarget.typeOrThrow;
|
||||
} else if (parent is ForEachPartsWithDeclaration) {
|
||||
toType = typeProvider.iterableType(
|
||||
parent.loopVariable.declaredElement!.type,
|
||||
parent.loopVariable.declaredFragment!.element.type,
|
||||
);
|
||||
} else if (parent is ForEachPartsWithIdentifier) {
|
||||
toType = typeProvider.iterableType(parent.identifier.typeOrThrow);
|
||||
|
||||
@@ -114,7 +114,7 @@ class AddTypeAnnotation extends ResolvedCorrectionProducer {
|
||||
if (declaredIdentifier.type != null) {
|
||||
return;
|
||||
}
|
||||
var type = declaredIdentifier.declaredElement!.type;
|
||||
var type = declaredIdentifier.declaredFragment!.element.type;
|
||||
if (type is! InterfaceType &&
|
||||
type is! FunctionType &&
|
||||
type is! RecordType &&
|
||||
@@ -225,8 +225,8 @@ class AddTypeAnnotation extends ResolvedCorrectionProducer {
|
||||
if (statement is! VariableDeclarationStatement || block is! Block) {
|
||||
return null;
|
||||
}
|
||||
var element = variable.declaredElement;
|
||||
if (element == null) {
|
||||
var element = variable.declaredFragment?.element;
|
||||
if (element is! LocalVariableElement) {
|
||||
return null;
|
||||
}
|
||||
var statements = block.statements;
|
||||
|
||||
+2
-1
@@ -105,7 +105,8 @@ class ConvertNullCheckToNullAwareElementOrEntry
|
||||
((node.caseClause?.guardedPattern.pattern as NullCheckPattern)
|
||||
.pattern
|
||||
as DeclaredVariablePattern)
|
||||
.declaredElement;
|
||||
.declaredFragment
|
||||
?.element;
|
||||
if (caseVariable == thenElement.key.canonicalElement) {
|
||||
// In case the key is promoted, replace everything before ':' with
|
||||
// the expression before 'case', prefixed by '?'.
|
||||
|
||||
+1
-1
@@ -239,7 +239,7 @@ extension on Statement {
|
||||
return null;
|
||||
}
|
||||
|
||||
var declaredElement = declaration.declaredElement;
|
||||
var declaredElement = declaration.declaredFragment?.element;
|
||||
if (declaredElement is! LocalVariableElement) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ class ConvertToWildcardVariable extends ResolvedCorrectionProducer {
|
||||
if (node is! VariableDeclaration) return;
|
||||
|
||||
var nameToken = node.name;
|
||||
var element = node.declaredElement;
|
||||
var element = node.declaredFragment?.element;
|
||||
if (element is! LocalVariableElement) {
|
||||
return;
|
||||
}
|
||||
|
||||
+3
-3
@@ -33,7 +33,7 @@ class DestructureLocalVariableAssignment extends ResolvedCorrectionProducer {
|
||||
Future<void> compute(ChangeBuilder builder) async {
|
||||
var node = this.node;
|
||||
if (node is! VariableDeclaration) return;
|
||||
var element = node.declaredElement;
|
||||
var element = node.declaredFragment?.element;
|
||||
if (element == null) return;
|
||||
var type = element.type;
|
||||
switch (type) {
|
||||
@@ -51,8 +51,8 @@ class DestructureLocalVariableAssignment extends ResolvedCorrectionProducer {
|
||||
) async {
|
||||
// TODO(pq): share reference checking w/ record computation
|
||||
|
||||
var variableElement = node.declaredElement;
|
||||
if (variableElement == null) return;
|
||||
var variableElement = node.declaredFragment?.element;
|
||||
if (variableElement is! LocalVariableElement) return;
|
||||
|
||||
var function = node.thisOrAncestorOfType<FunctionBody>();
|
||||
if (function == null) return;
|
||||
|
||||
@@ -85,7 +85,7 @@ class JoinVariableDeclaration extends ResolvedCorrectionProducer {
|
||||
// The declared variable must be the one that is assigned.
|
||||
// There must be no initializer.
|
||||
var declaredVariable = declaredVariables.single;
|
||||
if (declaredVariable.declaredElement != left.element ||
|
||||
if (declaredVariable.declaredFragment?.element != left.element ||
|
||||
declaredVariable.initializer != null) {
|
||||
return;
|
||||
}
|
||||
@@ -149,7 +149,7 @@ class JoinVariableDeclaration extends ResolvedCorrectionProducer {
|
||||
}
|
||||
|
||||
// The assignment should write into the declared variable.
|
||||
if (assignment.writeElement != declaredVariable.declaredElement) {
|
||||
if (assignment.writeElement != declaredVariable.declaredFragment?.element) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ class MakeVariableNullable extends ResolvedCorrectionProducer {
|
||||
if (statement is VariableDeclarationStatement) {
|
||||
var variableList = statement.variables;
|
||||
for (var declaration in variableList.variables) {
|
||||
if (declaration.declaredElement == variable) {
|
||||
if (declaration.declaredFragment?.element == variable) {
|
||||
return variableList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,10 +38,10 @@ class RemoveLeadingUnderscore extends ResolvedCorrectionProducer {
|
||||
element = node.declaredFragment?.element;
|
||||
} else if (node is VariableDeclaration) {
|
||||
nameToken = node.name;
|
||||
element = node.declaredElement ?? node.declaredFragment?.element;
|
||||
element = node.declaredFragment?.element;
|
||||
} else if (node is DeclaredVariablePattern) {
|
||||
nameToken = node.name;
|
||||
element = node.declaredElement;
|
||||
element = node.declaredFragment?.element;
|
||||
} else if (node is FunctionDeclaration) {
|
||||
nameToken = node.name;
|
||||
element = node.declaredFragment?.element;
|
||||
|
||||
+3
-2
@@ -4,6 +4,7 @@
|
||||
|
||||
import 'package:analysis_server/src/services/correction/fix.dart';
|
||||
import 'package:analysis_server/src/services/correction/util.dart';
|
||||
import 'package:analysis_server/src/utilities/extensions/object.dart';
|
||||
import 'package:analysis_server_plugin/edit/correction_utils.dart';
|
||||
import 'package:analysis_server_plugin/edit/dart/correction_producer.dart';
|
||||
import 'package:analyzer/dart/element/element.dart';
|
||||
@@ -286,10 +287,10 @@ class RemoveUnusedLocalVariable extends ResolvedCorrectionProducer {
|
||||
LocalVariableElement? _localVariableElement() {
|
||||
var node = this.node;
|
||||
if (node is DeclaredVariablePattern) {
|
||||
return node.declaredElement;
|
||||
return node.declaredFragment?.element;
|
||||
} else if (node is VariableDeclaration) {
|
||||
if (node.name == token) {
|
||||
return node.declaredElement;
|
||||
return node.declaredFragment?.element.ifTypeOrNull();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -42,7 +42,7 @@ class RenameToCamelCase extends ResolvedCorrectionProducer {
|
||||
element = node.declaredFragment?.element;
|
||||
} else if (node is VariableDeclaration) {
|
||||
nameToken = node.name;
|
||||
element = node.declaredElement ?? node.declaredFragment?.element;
|
||||
element = node.declaredFragment?.element;
|
||||
} else if (node is RecordTypeAnnotationField) {
|
||||
// RecordTypeAnnotationFields do not have Elements.
|
||||
nameToken = node.name;
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@ class ReplaceConditionalWithIfElse extends ResolvedCorrectionProducer {
|
||||
var variable = conditional.parent as VariableDeclaration;
|
||||
var variableList = variable.parent as VariableDeclarationList;
|
||||
if (variableList.type == null) {
|
||||
var type = variable.declaredElement!.type;
|
||||
var type = variable.declaredFragment!.element.type;
|
||||
var keyword = variableList.keyword;
|
||||
if (keyword != null && keyword.keyword == Keyword.VAR) {
|
||||
builder.addReplacement(range.token(keyword), (builder) {
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@ class SplitVariableDeclaration extends ResolvedCorrectionProducer {
|
||||
await builder.addDartFileEdit(file, (builder) {
|
||||
var eol = builder.eol;
|
||||
if (variableList.type == null) {
|
||||
var type = variable.declaredElement!.type;
|
||||
var type = variable.declaredFragment!.element.type;
|
||||
if (type is! DynamicType && keyword != null) {
|
||||
if (!builder.canWriteType(type)) {
|
||||
return;
|
||||
|
||||
+7
-4
@@ -14,8 +14,11 @@ class VisibleRangesComputer extends GeneralizingAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitCatchClause(CatchClause node) {
|
||||
_addLocalVariable(node, node.exceptionParameter?.declaredElement);
|
||||
_addLocalVariable(node, node.stackTraceParameter?.declaredElement);
|
||||
_addLocalVariable(node, node.exceptionParameter?.declaredFragment?.element);
|
||||
_addLocalVariable(
|
||||
node,
|
||||
node.stackTraceParameter?.declaredFragment?.element,
|
||||
);
|
||||
node.body.accept(this);
|
||||
}
|
||||
|
||||
@@ -36,7 +39,7 @@ class VisibleRangesComputer extends GeneralizingAstVisitor<void> {
|
||||
void visitForPartsWithDeclarations(ForPartsWithDeclarations node) {
|
||||
var loop = node.parent;
|
||||
for (var variable in node.variables.variables) {
|
||||
_addLocalVariable(loop, variable.declaredElement);
|
||||
_addLocalVariable(loop, variable.declaredFragment?.element);
|
||||
variable.initializer?.accept(this);
|
||||
}
|
||||
}
|
||||
@@ -71,7 +74,7 @@ class VisibleRangesComputer extends GeneralizingAstVisitor<void> {
|
||||
var block = node.parent;
|
||||
if (block != null) {
|
||||
for (var variable in node.variables.variables) {
|
||||
_addLocalVariable(block, variable.declaredElement);
|
||||
_addLocalVariable(block, variable.declaredFragment?.element);
|
||||
variable.initializer?.accept(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ class AstWriter extends UnifyingAstVisitor<void> with TreeWriter {
|
||||
} else if (node is ConstructorName) {
|
||||
properties['element'] = node.element;
|
||||
} else if (node is DeclaredIdentifier) {
|
||||
properties['element'] = node.declaredElement;
|
||||
properties['element'] = node.declaredFragment?.element;
|
||||
properties['keyword'] = node.keyword;
|
||||
} else if (node is ExportDirective) {
|
||||
properties['library export'] = node.libraryExport;
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
## 8.2.0-dev
|
||||
* Deprecate `CatchClauseParameter.declaredElement` and `CatchClauseParameter.declaredElement2`.
|
||||
Use `CatchClauseParameter.declaredFragment` instead.
|
||||
* Deprecate `DeclaredIdentifier.declaredElement` and `DeclaredIdentifier.declaredElement2`.
|
||||
Use `DeclaredIdentifier.declaredFragment` instead.
|
||||
* Deprecate `DeclaredVariablePattern.declaredElement` and `DeclaredVariablePattern.declaredElement2`.
|
||||
Use `DeclaredVariablePattern.declaredFragment` instead.
|
||||
* Deprecate `VariableDeclaration.declaredElement` and `VariableDeclaration.declaredElement2`.
|
||||
Use `VariableDeclaration.declaredFragment` instead.
|
||||
|
||||
## 8.1.1
|
||||
* Fix for `EnumSet` usage when compiled to JavaScript.
|
||||
|
||||
|
||||
@@ -860,7 +860,7 @@ package:analyzer/dart/ast/ast.dart:
|
||||
rightParenthesis (getter: Token?)
|
||||
stackTraceParameter (getter: CatchClauseParameter?)
|
||||
CatchClauseParameter (class extends AstNode):
|
||||
declaredElement (getter: LocalVariableElement?, experimental)
|
||||
declaredElement (getter: LocalVariableElement?, deprecated, experimental)
|
||||
declaredElement2 (getter: LocalVariableElement?, deprecated, experimental)
|
||||
declaredFragment (getter: LocalVariableFragment?, experimental)
|
||||
name (getter: Token)
|
||||
@@ -994,7 +994,7 @@ package:analyzer/dart/ast/ast.dart:
|
||||
Declaration (class extends Object implements AnnotatedNode):
|
||||
declaredFragment (getter: Fragment?, experimental)
|
||||
DeclaredIdentifier (class extends Object implements Declaration):
|
||||
declaredElement (getter: LocalVariableElement?, experimental)
|
||||
declaredElement (getter: LocalVariableElement?, deprecated, experimental)
|
||||
declaredElement2 (getter: LocalVariableElement?, deprecated, experimental)
|
||||
declaredFragment (getter: LocalVariableFragment?)
|
||||
isConst (getter: bool)
|
||||
@@ -1003,7 +1003,7 @@ package:analyzer/dart/ast/ast.dart:
|
||||
name (getter: Token)
|
||||
type (getter: TypeAnnotation?)
|
||||
DeclaredVariablePattern (class extends Object implements VariablePattern, sealed (immediate subtypes: DeclaredVariablePatternImpl)):
|
||||
declaredElement (getter: BindPatternVariableElement?, experimental)
|
||||
declaredElement (getter: BindPatternVariableElement?, deprecated, experimental)
|
||||
declaredElement2 (getter: BindPatternVariableElement?, deprecated, experimental)
|
||||
declaredFragment (getter: BindPatternVariableFragment?)
|
||||
keyword (getter: Token?)
|
||||
@@ -1742,7 +1742,7 @@ package:analyzer/dart/ast/ast.dart:
|
||||
UriBasedDirective (class extends Object implements Directive, sealed (immediate subtypes: NamespaceDirective, PartDirective, UriBasedDirectiveImpl)):
|
||||
uri (getter: StringLiteral)
|
||||
VariableDeclaration (class extends Object implements Declaration):
|
||||
declaredElement (getter: LocalVariableElement?, experimental)
|
||||
declaredElement (getter: LocalVariableElement?, deprecated, experimental)
|
||||
declaredElement2 (getter: LocalVariableElement?, deprecated, experimental)
|
||||
declaredFragment (getter: VariableFragment?, experimental)
|
||||
equals (getter: Token?)
|
||||
|
||||
@@ -2750,13 +2750,14 @@ abstract final class CatchClauseParameter extends AstNode {
|
||||
/// The declared element.
|
||||
///
|
||||
/// Returns `null` if the AST hasn't been resolved.
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
LocalVariableElement? get declaredElement;
|
||||
|
||||
/// The declared element.
|
||||
///
|
||||
/// Returns `null` if the AST hasn't been resolved.
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
LocalVariableElement? get declaredElement2;
|
||||
|
||||
@@ -2789,12 +2790,13 @@ final class CatchClauseParameterImpl extends AstNodeImpl
|
||||
return name;
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@override
|
||||
LocalVariableElementImpl? get declaredElement {
|
||||
return declaredFragment?.element;
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@override
|
||||
LocalVariableElementImpl? get declaredElement2 {
|
||||
return declaredElement;
|
||||
@@ -5650,6 +5652,7 @@ abstract final class DeclaredIdentifier implements Declaration {
|
||||
///
|
||||
/// Returns `null` if either this node corresponds to a list of declarations
|
||||
/// or if the AST structure hasn't been resolved.
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
LocalVariableElement? get declaredElement;
|
||||
|
||||
@@ -5657,7 +5660,7 @@ abstract final class DeclaredIdentifier implements Declaration {
|
||||
///
|
||||
/// Returns `null` if either this node corresponds to a list of declarations
|
||||
/// or if the AST structure hasn't been resolved.
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
LocalVariableElement? get declaredElement2;
|
||||
|
||||
@@ -5719,13 +5722,14 @@ final class DeclaredIdentifierImpl extends DeclarationImpl
|
||||
_becomeParentOf(type);
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
@override
|
||||
LocalVariableElementImpl? get declaredElement {
|
||||
return declaredFragment?.element;
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
@override
|
||||
LocalVariableElementImpl? get declaredElement2 {
|
||||
@@ -5808,13 +5812,14 @@ sealed class DeclaredVariablePattern implements VariablePattern {
|
||||
/// The element declared by this declaration.
|
||||
///
|
||||
/// Returns `null` if the AST structure hasn't been resolved.
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
BindPatternVariableElement? get declaredElement;
|
||||
|
||||
/// The element declared by this declaration.
|
||||
///
|
||||
/// Returns `null` if the AST structure hasn't been resolved.
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
BindPatternVariableElement? get declaredElement2;
|
||||
|
||||
@@ -5871,13 +5876,14 @@ final class DeclaredVariablePatternImpl extends VariablePatternImpl
|
||||
return name;
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
@override
|
||||
BindPatternVariableElementImpl? get declaredElement {
|
||||
return declaredFragment?.element;
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
@override
|
||||
BindPatternVariableElementImpl? get declaredElement2 {
|
||||
@@ -5939,14 +5945,15 @@ final class DeclaredVariablePatternImpl extends VariablePatternImpl
|
||||
SharedMatchContext context,
|
||||
) {
|
||||
inferenceLogWriter?.enterPattern(this);
|
||||
var declaredElement = declaredFragment!.element;
|
||||
var result = resolverVisitor.analyzeDeclaredVariablePattern(
|
||||
context,
|
||||
this,
|
||||
declaredElement!,
|
||||
declaredFragment!.name ?? '',
|
||||
declaredElement,
|
||||
declaredElement.name ?? '',
|
||||
type?.typeOrThrow.wrapSharedTypeView(),
|
||||
);
|
||||
declaredElement!.type = result.staticType.unwrapTypeView();
|
||||
declaredElement.type = result.staticType.unwrapTypeView();
|
||||
|
||||
resolverVisitor.checkPatternNeverMatchesValueType(
|
||||
context: context,
|
||||
@@ -24788,6 +24795,7 @@ abstract final class VariableDeclaration implements Declaration {
|
||||
///
|
||||
/// Returns `null` if the AST structure hasn't been resolved or if this node
|
||||
/// represents the declaration of a top-level variable or a field.
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
LocalVariableElement? get declaredElement;
|
||||
|
||||
@@ -24795,7 +24803,7 @@ abstract final class VariableDeclaration implements Declaration {
|
||||
///
|
||||
/// Returns `null` if the AST structure hasn't been resolved or if this node
|
||||
/// represents the declaration of a top-level variable or a field.
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
LocalVariableElement? get declaredElement2;
|
||||
|
||||
@@ -24871,13 +24879,14 @@ final class VariableDeclarationImpl extends DeclarationImpl
|
||||
_becomeParentOf(initializer);
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
@override
|
||||
LocalVariableElementImpl? get declaredElement {
|
||||
return declaredFragment?.element.ifTypeOrNull<LocalVariableElementImpl>();
|
||||
}
|
||||
|
||||
@Deprecated('Use declaredElement instead')
|
||||
@Deprecated('Use declaredFragment instead')
|
||||
@experimental
|
||||
@override
|
||||
LocalVariableElementImpl? get declaredElement2 {
|
||||
|
||||
@@ -43,7 +43,7 @@ class _ElementMapper2 extends GeneralizingAstVisitor<Element> {
|
||||
|
||||
@override
|
||||
Element? visitCatchClauseParameter(CatchClauseParameter node) {
|
||||
return node.declaredElement;
|
||||
return node.declaredFragment?.element;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -80,12 +80,12 @@ class _ElementMapper2 extends GeneralizingAstVisitor<Element> {
|
||||
|
||||
@override
|
||||
Element? visitDeclaredIdentifier(DeclaredIdentifier node) {
|
||||
return node.declaredElement;
|
||||
return node.declaredFragment?.element;
|
||||
}
|
||||
|
||||
@override
|
||||
Element? visitDeclaredVariablePattern(DeclaredVariablePattern node) {
|
||||
return node.declaredElement;
|
||||
return node.declaredFragment?.element;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -309,6 +309,6 @@ class _ElementMapper2 extends GeneralizingAstVisitor<Element> {
|
||||
|
||||
@override
|
||||
Element? visitVariableDeclaration(VariableDeclaration node) {
|
||||
return node.declaredFragment?.element ?? node.declaredElement;
|
||||
return node.declaredFragment?.element ?? node.declaredFragment?.element;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,7 +346,9 @@ class FlowAnalysisHelper {
|
||||
var variables = node.variables;
|
||||
for (var i = 0; i < variables.length; ++i) {
|
||||
var variable = variables[i];
|
||||
var declaredElement = variable.declaredElement!;
|
||||
var declaredFragment =
|
||||
variable.declaredFragment as LocalVariableFragmentImpl;
|
||||
var declaredElement = declaredFragment.element;
|
||||
flow!.declare(
|
||||
declaredElement,
|
||||
SharedTypeView(declaredElement.type),
|
||||
@@ -1003,7 +1005,7 @@ class _AssignedVariablesVisitor extends RecursiveAstVisitor<void> {
|
||||
node.stackTraceParameter,
|
||||
]) {
|
||||
if (identifier != null) {
|
||||
assignedVariables.declare(identifier.declaredElement!);
|
||||
assignedVariables.declare(identifier.declaredFragment!.element);
|
||||
}
|
||||
}
|
||||
super.visitCatchClause(node);
|
||||
@@ -1194,7 +1196,8 @@ class _AssignedVariablesVisitor extends RecursiveAstVisitor<void> {
|
||||
grandParent is FieldDeclaration) {
|
||||
throw StateError('Should not visit top level declarations');
|
||||
}
|
||||
var declaredElement = node.declaredElement as PromotableElementImpl;
|
||||
var declaredElement =
|
||||
node.declaredFragment?.element as PromotableElementImpl;
|
||||
assignedVariables.declare(declaredElement);
|
||||
if (declaredElement.isLate && node.initializer != null) {
|
||||
assignedVariables.beginNode();
|
||||
@@ -1247,7 +1250,7 @@ class _AssignedVariablesVisitor extends RecursiveAstVisitor<void> {
|
||||
assignedVariables.write(element);
|
||||
}
|
||||
} else if (forLoopParts is ForEachPartsWithDeclarationImpl) {
|
||||
var variable = forLoopParts.loopVariable.declaredElement!;
|
||||
var variable = forLoopParts.loopVariable.declaredFragment!.element;
|
||||
assignedVariables.declare(variable);
|
||||
} else if (forLoopParts is ForEachPartsWithPatternImpl) {
|
||||
for (var variable in forLoopParts.variables) {
|
||||
|
||||
@@ -190,7 +190,7 @@ class ForResolver {
|
||||
}
|
||||
|
||||
if (loopVariable != null) {
|
||||
var declaredElement = loopVariable.declaredElement!;
|
||||
var declaredElement = loopVariable.declaredFragment!.element;
|
||||
_resolver.flowAnalysis.flow?.declare(
|
||||
declaredElement,
|
||||
SharedTypeView(declaredElement.type),
|
||||
|
||||
@@ -37,7 +37,7 @@ class DuplicateDefinitionVerifier {
|
||||
var exceptionParameter = node.exceptionParameter;
|
||||
var stackTraceParameter = node.stackTraceParameter;
|
||||
if (exceptionParameter != null && stackTraceParameter != null) {
|
||||
var element = exceptionParameter.declaredElement;
|
||||
var element = exceptionParameter.declaredFragment?.element;
|
||||
if (element != null && element.isWildcardVariable) return;
|
||||
String exceptionName = exceptionParameter.name.lexeme;
|
||||
if (exceptionName == stackTraceParameter.name.lexeme) {
|
||||
|
||||
@@ -61,14 +61,14 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor<void> {
|
||||
var exceptionParameter = node.exceptionParameter;
|
||||
var stackTraceParameter = node.stackTraceParameter;
|
||||
if (exceptionParameter != null) {
|
||||
var element = exceptionParameter.declaredElement;
|
||||
var element = exceptionParameter.declaredFragment?.element;
|
||||
usedElements.addCatchException(element);
|
||||
if (stackTraceParameter != null || node.onKeyword == null) {
|
||||
usedElements.addElement(element);
|
||||
}
|
||||
}
|
||||
if (stackTraceParameter != null) {
|
||||
var element = stackTraceParameter.declaredElement;
|
||||
var element = stackTraceParameter.declaredFragment?.element;
|
||||
usedElements.addCatchStackTrace(element);
|
||||
}
|
||||
super.visitCatchClause(node);
|
||||
@@ -521,7 +521,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitCatchClauseParameter(CatchClauseParameter node) {
|
||||
_visitLocalVariableElement(node.declaredElement!);
|
||||
_visitLocalVariableElement(node.declaredFragment!.element);
|
||||
super.visitCatchClauseParameter(node);
|
||||
}
|
||||
|
||||
@@ -553,7 +553,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor<void> {
|
||||
void visitDeclaredVariablePattern(
|
||||
covariant DeclaredVariablePatternImpl node,
|
||||
) {
|
||||
var declaredElement = node.declaredElement!;
|
||||
var declaredElement = node.declaredFragment!.element;
|
||||
if (!declaredElement.isDuplicate) {
|
||||
var patternVariableElements = _patternVariableElements;
|
||||
if (patternVariableElements != null) {
|
||||
@@ -618,7 +618,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor<void> {
|
||||
void visitForPartsWithDeclarations(ForPartsWithDeclarations node) {
|
||||
for (var variable in node.variables.variables) {
|
||||
_visitLocalVariableElement(
|
||||
variable.declaredElement as LocalVariableElement,
|
||||
variable.declaredFragment!.element as LocalVariableElement,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -748,7 +748,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor<void> {
|
||||
void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
|
||||
for (var variable in node.variables.variables) {
|
||||
_visitLocalVariableElement(
|
||||
variable.declaredElement as LocalVariableElement,
|
||||
variable.declaredFragment!.element as LocalVariableElement,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -568,7 +568,7 @@ class PatternConverter with SpaceCreator<DartPattern, TypeImpl> {
|
||||
return createVariableSpace(
|
||||
path,
|
||||
contextType,
|
||||
pattern.declaredElement!.type,
|
||||
pattern.declaredFragment!.element.type,
|
||||
nonNull: nonNull,
|
||||
);
|
||||
} else if (pattern is ObjectPattern) {
|
||||
|
||||
@@ -4083,9 +4083,9 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
// TODO(paulberry): try to remove these casts by changing `node` to a
|
||||
// `TryStatementImpl`
|
||||
flow.tryCatchStatement_catchBegin(
|
||||
catchClause.exceptionParameter?.declaredElement
|
||||
catchClause.exceptionParameter?.declaredFragment?.element
|
||||
as PromotableElementImpl?,
|
||||
catchClause.stackTraceParameter?.declaredElement
|
||||
catchClause.stackTraceParameter?.declaredFragment?.element
|
||||
as PromotableElementImpl?,
|
||||
);
|
||||
catchClause.accept(this);
|
||||
@@ -4151,7 +4151,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
var declaredType = parent.type;
|
||||
var initializerStaticType = initializer.typeOrThrow;
|
||||
flowAnalysis.flow?.initialize(
|
||||
node.declaredElement as PromotableElementImpl,
|
||||
node.declaredFragment?.element as PromotableElementImpl,
|
||||
SharedTypeView(initializerStaticType),
|
||||
initializer,
|
||||
isFinal: parent.isFinal,
|
||||
@@ -4904,10 +4904,10 @@ class ScopeResolverVisitor extends UnifyingAstVisitor<void> {
|
||||
Scope outerScope = nameScope;
|
||||
try {
|
||||
nameScope = LocalScope(nameScope);
|
||||
_define(exception.declaredElement!);
|
||||
_define(exception.declaredFragment!.element);
|
||||
var stackTrace = node.stackTraceParameter;
|
||||
if (stackTrace != null) {
|
||||
_define(stackTrace.declaredElement!);
|
||||
_define(stackTrace.declaredFragment!.element);
|
||||
}
|
||||
super.visitCatchClause(node);
|
||||
} finally {
|
||||
@@ -5601,7 +5601,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor<void> {
|
||||
super.visitVariableDeclaration(node);
|
||||
|
||||
if (node.parent!.parent is ForParts) {
|
||||
_define(node.declaredElement!);
|
||||
_define(node.declaredFragment!.element);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -141,13 +141,13 @@ class FindElement2 extends _FindElementBase {
|
||||
unit.accept(
|
||||
FunctionAstVisitor(
|
||||
catchClauseParameter: (node) {
|
||||
updateResult(node.declaredElement!);
|
||||
updateResult(node.declaredFragment!.element);
|
||||
},
|
||||
declaredIdentifier: (node) {
|
||||
updateResult(node.declaredElement!);
|
||||
updateResult(node.declaredFragment!.element);
|
||||
},
|
||||
declaredVariablePattern: (node) {
|
||||
updateResult(node.declaredElement!);
|
||||
updateResult(node.declaredFragment!.element);
|
||||
},
|
||||
variableDeclaration: (node) {
|
||||
updateResult(node.declaredFragment!.element);
|
||||
|
||||
@@ -246,7 +246,7 @@ class FindNode {
|
||||
|
||||
BindPatternVariableElement bindPatternVariableElement(String search) {
|
||||
var node = declaredVariablePattern(search);
|
||||
return node.declaredElement!;
|
||||
return node.declaredFragment!.element;
|
||||
}
|
||||
|
||||
Block block(String search) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: analyzer
|
||||
version: 8.1.1
|
||||
version: 8.2.0-dev
|
||||
description: >-
|
||||
This package provides a library that performs static analysis of Dart code.
|
||||
repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer
|
||||
|
||||
@@ -246,7 +246,7 @@ void test(List<A> listA, List<B> listB) {
|
||||
) {
|
||||
var node = findNode.declaredIdentifier(vSearch);
|
||||
|
||||
var element = node.declaredElement as LocalVariableElement;
|
||||
var element = node.declaredFragment?.element as LocalVariableElement;
|
||||
assertType(element.type, vType);
|
||||
|
||||
var invocation = findNode.methodInvocation(fSearch);
|
||||
|
||||
@@ -375,12 +375,13 @@ class _DartNavigationComputerVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
|
||||
if (node.declaredElement case BindPatternVariableElement(:var join?)) {
|
||||
var declaredElement = node.declaredFragment?.element;
|
||||
if (declaredElement case BindPatternVariableElement(:var join?)) {
|
||||
for (var variable in join.variables) {
|
||||
computer._addRegionForElement(node.name, variable);
|
||||
}
|
||||
} else {
|
||||
computer._addRegionForElement(node.name, node.declaredElement);
|
||||
computer._addRegionForElement(node.name, declaredElement);
|
||||
}
|
||||
super.visitDeclaredVariablePattern(node);
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ abstract class LocalDeclarationVisitor extends UnifyingAstVisitor {
|
||||
if (exceptionParameter != null) {
|
||||
declaredParam(
|
||||
exceptionParameter.name,
|
||||
exceptionParameter.declaredElement,
|
||||
exceptionParameter.declaredFragment?.element,
|
||||
node.exceptionType,
|
||||
);
|
||||
}
|
||||
@@ -91,7 +91,7 @@ abstract class LocalDeclarationVisitor extends UnifyingAstVisitor {
|
||||
if (stackTraceParameter != null) {
|
||||
declaredParam(
|
||||
stackTraceParameter.name,
|
||||
stackTraceParameter.declaredElement,
|
||||
stackTraceParameter.declaredFragment?.element,
|
||||
null,
|
||||
);
|
||||
}
|
||||
@@ -133,13 +133,13 @@ abstract class LocalDeclarationVisitor extends UnifyingAstVisitor {
|
||||
var forLoopParts = node.forLoopParts;
|
||||
if (forLoopParts is ForEachPartsWithDeclaration) {
|
||||
var loopVariable = forLoopParts.loopVariable;
|
||||
declaredLocalVar(
|
||||
loopVariable.name, loopVariable.type, loopVariable.declaredElement!);
|
||||
declaredLocalVar(loopVariable.name, loopVariable.type,
|
||||
loopVariable.declaredFragment!.element);
|
||||
} else if (forLoopParts is ForPartsWithDeclarations) {
|
||||
var varList = forLoopParts.variables;
|
||||
for (var varDecl in varList.variables) {
|
||||
declaredLocalVar(varDecl.name, varList.type,
|
||||
varDecl.declaredElement as LocalVariableElement);
|
||||
varDecl.declaredFragment!.element as LocalVariableElement);
|
||||
}
|
||||
}
|
||||
visitNode(node);
|
||||
@@ -150,13 +150,13 @@ abstract class LocalDeclarationVisitor extends UnifyingAstVisitor {
|
||||
var forLoopParts = node.forLoopParts;
|
||||
if (forLoopParts is ForEachPartsWithDeclaration) {
|
||||
var loopVariable = forLoopParts.loopVariable;
|
||||
declaredLocalVar(
|
||||
loopVariable.name, loopVariable.type, loopVariable.declaredElement!);
|
||||
declaredLocalVar(loopVariable.name, loopVariable.type,
|
||||
loopVariable.declaredFragment!.element);
|
||||
} else if (forLoopParts is ForPartsWithDeclarations) {
|
||||
var varList = forLoopParts.variables;
|
||||
for (var varDecl in varList.variables) {
|
||||
declaredLocalVar(varDecl.name, varList.type,
|
||||
varDecl.declaredElement as LocalVariableElement);
|
||||
varDecl.declaredFragment!.element as LocalVariableElement);
|
||||
}
|
||||
}
|
||||
visitNode(node);
|
||||
@@ -412,7 +412,7 @@ abstract class LocalDeclarationVisitor extends UnifyingAstVisitor {
|
||||
|
||||
/// Visit the given [pattern] without visiting any of its parents.
|
||||
void _visitDeclaredVariablePattern(DeclaredVariablePattern pattern) {
|
||||
var declaredElement = pattern.declaredElement;
|
||||
var declaredElement = pattern.declaredFragment?.element;
|
||||
if (declaredElement != null) {
|
||||
declaredLocalVar(pattern.name, pattern.type, declaredElement);
|
||||
}
|
||||
@@ -448,7 +448,7 @@ abstract class LocalDeclarationVisitor extends UnifyingAstVisitor {
|
||||
for (var varDecl in varList.variables) {
|
||||
if (varDecl.end < offset) {
|
||||
declaredLocalVar(varDecl.name, varList.type,
|
||||
varDecl.declaredElement as LocalVariableElement);
|
||||
varDecl.declaredFragment?.element as LocalVariableElement);
|
||||
}
|
||||
}
|
||||
} else if (stmt is FunctionDeclarationStatement) {
|
||||
|
||||
@@ -71,7 +71,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
void visitDeclaredIdentifier(DeclaredIdentifier node) {
|
||||
var keyword = node.keyword;
|
||||
if (node.type == null && keyword != null) {
|
||||
var element = node.declaredElement;
|
||||
var element = node.declaredFragment?.element;
|
||||
if (element is VariableElement) {
|
||||
if (keyword.keyword == Keyword.VAR) {
|
||||
rule.reportAtToken(
|
||||
|
||||
@@ -141,7 +141,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
@override
|
||||
void visitCatchClause(CatchClause node) {
|
||||
if (node.onKeyword != null) return;
|
||||
var caughtException = node.exceptionParameter?.declaredElement;
|
||||
var caughtException = node.exceptionParameter?.declaredFragment?.element;
|
||||
if (caughtException == null) return;
|
||||
|
||||
var validUseVisitor = _ValidUseVisitor(caughtException);
|
||||
|
||||
@@ -60,8 +60,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitVariableDeclaration(VariableDeclaration node) {
|
||||
var declaredElement =
|
||||
node.declaredElement ?? node.declaredFragment?.element;
|
||||
var declaredElement = node.declaredFragment?.element;
|
||||
if (declaredElement != null &&
|
||||
!node.isConst &&
|
||||
!node.isFinal &&
|
||||
|
||||
@@ -29,7 +29,7 @@ Element? _getElementFromVariableDeclarationStatement(
|
||||
// In such a case, we should not return any cascadable element here.
|
||||
return null;
|
||||
}
|
||||
return variable.declaredElement ?? variable.declaredFragment?.element;
|
||||
return variable.declaredFragment?.element;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
if (loopVariable.isFinal) return;
|
||||
|
||||
var function = node.thisOrAncestorOfType<FunctionBody>();
|
||||
var loopVariableElement = loopVariable.declaredElement;
|
||||
var loopVariableElement = loopVariable.declaredFragment?.element;
|
||||
if (function != null &&
|
||||
loopVariableElement != null &&
|
||||
!function.isPotentiallyMutatedInScope(loopVariableElement)) {
|
||||
@@ -108,7 +108,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
extension on FunctionBody {
|
||||
bool potentiallyMutates(Object pattern) {
|
||||
if (pattern is! DeclaredVariablePattern) return true;
|
||||
var element = pattern.declaredElement;
|
||||
var element = pattern.declaredFragment?.element;
|
||||
if (element == null) return true;
|
||||
return isPotentiallyMutatedInScope(element.baseElement);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ class _DeclaredVariableVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
|
||||
var element = node.declaredElement;
|
||||
var element = node.declaredFragment?.element;
|
||||
if (element != null) {
|
||||
declaredElements.add(element);
|
||||
}
|
||||
@@ -57,7 +57,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
|
||||
bool isPotentiallyMutated(AstNode pattern, FunctionBody function) {
|
||||
if (pattern is DeclaredVariablePattern) {
|
||||
var element = pattern.declaredElement;
|
||||
var element = pattern.declaredFragment?.element;
|
||||
if (element == null || function.isPotentiallyMutatedInScope(element)) {
|
||||
return true;
|
||||
}
|
||||
@@ -132,7 +132,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
if (variable.equals == null || variable.initializer == null) {
|
||||
return;
|
||||
}
|
||||
var declaredElement = variable.declaredElement;
|
||||
var declaredElement = variable.declaredFragment?.element;
|
||||
if (declaredElement != null &&
|
||||
(declaredElement.isWildcardVariable ||
|
||||
function.isPotentiallyMutatedInScope(declaredElement))) {
|
||||
|
||||
@@ -53,7 +53,7 @@ class _PreferForEachVisitor extends SimpleAstVisitor<void> {
|
||||
void visitForStatement(ForStatement node) {
|
||||
var loopParts = node.forLoopParts;
|
||||
if (loopParts is ForEachPartsWithDeclaration) {
|
||||
var element = loopParts.loopVariable.declaredElement;
|
||||
var element = loopParts.loopVariable.declaredFragment?.element;
|
||||
if (element != null) {
|
||||
forEachStatement = node;
|
||||
this.element = element;
|
||||
|
||||
@@ -50,7 +50,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
rule.reportAtNode(node);
|
||||
}
|
||||
} else {
|
||||
var declaredElement = node.declaredElement;
|
||||
var declaredElement = node.declaredFragment?.element;
|
||||
if (declaredElement != null &&
|
||||
!function.isPotentiallyMutatedInScope(declaredElement)) {
|
||||
rule.reportAtNode(node);
|
||||
|
||||
@@ -213,8 +213,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
if (argType == null) return;
|
||||
if (!typeSystem.isSubtypeOf(tearoffType, argType)) return;
|
||||
} else if (parent is VariableDeclaration) {
|
||||
var variableElement =
|
||||
parent.declaredElement ?? parent.declaredFragment?.element;
|
||||
var variableElement = parent.declaredFragment?.element;
|
||||
var variableType = variableElement?.type;
|
||||
if (variableType == null) return;
|
||||
if (!typeSystem.isSubtypeOf(tearoffType, variableType)) return;
|
||||
|
||||
@@ -70,7 +70,7 @@ DartType? getExpectedType(PostfixExpression node) {
|
||||
}
|
||||
// in variable declaration
|
||||
if (parent is VariableDeclaration) {
|
||||
var element = parent.declaredFragment?.element ?? parent.declaredElement;
|
||||
var element = parent.declaredFragment?.element;
|
||||
return element?.type;
|
||||
}
|
||||
// as right member of binary operator
|
||||
|
||||
@@ -48,7 +48,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
|
||||
void check(AstNode node) {
|
||||
if (node is! DeclaredVariablePattern) return;
|
||||
var type = node.declaredElement?.type;
|
||||
var type = node.declaredFragment?.element.type;
|
||||
if (type == null) return;
|
||||
if (type is DynamicType) return;
|
||||
var valueType = node.matchedValueType;
|
||||
@@ -100,8 +100,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
var initializerType = variable.initializer?.staticType;
|
||||
if (initializerType == null) return;
|
||||
|
||||
var declaredElement =
|
||||
variable.declaredElement ?? variable.declaredFragment?.element;
|
||||
var declaredElement = variable.declaredFragment?.element;
|
||||
if (declaredElement == null || declaredElement.type is DynamicType) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
// Don't over-report on records missing trailing commas.
|
||||
// `(int,) r = (3);` is OK.
|
||||
if (parent is VariableDeclaration &&
|
||||
parent.declaredElement?.type is RecordType) {
|
||||
parent.declaredFragment?.element.type is RecordType) {
|
||||
if (expression is! RecordLiteral) return;
|
||||
}
|
||||
|
||||
|
||||
@@ -59,10 +59,10 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
nullCheckTarget = leftOperand.canonicalElement;
|
||||
}
|
||||
} else if (node.caseClause?.guardedPattern.pattern case NullCheckPattern(
|
||||
pattern: DeclaredVariablePattern(:var declaredElement),
|
||||
pattern: DeclaredVariablePattern(:var declaredFragment),
|
||||
)) {
|
||||
// Case of pattern null checks of the form `if (x case var y?) y`.
|
||||
nullCheckTarget = declaredElement;
|
||||
nullCheckTarget = declaredFragment?.element;
|
||||
}
|
||||
|
||||
if (nullCheckTarget is PromotableElementImpl) {
|
||||
|
||||
@@ -42,7 +42,8 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
var element = node.expression.canonicalElement;
|
||||
if (element != null) {
|
||||
var catchClause = node.thisOrAncestorOfType<CatchClause>();
|
||||
var exceptionParameter = catchClause?.exceptionParameter?.declaredElement;
|
||||
var exceptionParameter =
|
||||
catchClause?.exceptionParameter?.declaredFragment?.element;
|
||||
if (element == exceptionParameter) {
|
||||
rule.reportAtNode(node);
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ class _UseStringBufferVisitor extends SimpleAstVisitor<void> {
|
||||
@override
|
||||
void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
|
||||
for (var variable in node.variables.variables) {
|
||||
localElements.add(variable.declaredElement);
|
||||
localElements.add(variable.declaredFragment?.element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user