diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights.dart b/pkg/analysis_server/lib/src/computer/computer_highlights.dart index 015bb6fd4df..a27d62c94ed 100644 --- a/pkg/analysis_server/lib/src/computer/computer_highlights.dart +++ b/pkg/analysis_server/lib/src/computer/computer_highlights.dart @@ -787,7 +787,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor { exceptionParameter.name, HighlightRegionType.LOCAL_VARIABLE_DECLARATION, additionalSemanticTokenModifiers: _additionalModifiersForElement( - exceptionParameter.declaredElement, + exceptionParameter.declaredFragment?.element, ), ); } @@ -797,7 +797,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor { stackTraceParameter.name, HighlightRegionType.LOCAL_VARIABLE_DECLARATION, additionalSemanticTokenModifiers: _additionalModifiersForElement( - stackTraceParameter.declaredElement, + stackTraceParameter.declaredFragment?.element, ), ); } @@ -922,7 +922,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor { node.name, HighlightRegionType.LOCAL_VARIABLE_DECLARATION, additionalSemanticTokenModifiers: _additionalModifiersForElement( - node.declaredElement, + node.declaredFragment?.element, ), ); @@ -1831,7 +1831,7 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor { @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, diff --git a/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart b/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart index 112913e80b3..cbd52813a12 100644 --- a/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart +++ b/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart @@ -335,7 +335,7 @@ class _DartInlayHintComputerVisitor extends GeneralizingAstVisitor { 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 { return; } - var declaration = node.declaredElement; + var declaration = node.declaredFragment?.element; if (declaration != null) { _computer.addVariableTypePrefix(node.name, declaration.type); } diff --git a/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart b/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart index 38db77e7d13..d1597c1ae26 100644 --- a/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart +++ b/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart @@ -147,10 +147,11 @@ class DartUnitOccurrencesComputerVisitor extends GeneralizingAstVisitor { @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); diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_inline_value.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_inline_value.dart index 2492c3c1e09..48016de66f2 100644 --- a/pkg/analysis_server/lib/src/lsp/handlers/handler_inline_value.dart +++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_inline_value.dart @@ -294,7 +294,7 @@ class _InlineValueVisitor extends GeneralizingAstVisitor { 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 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 visitVariableDeclaration(VariableDeclaration node) { var name = node.name; collector.recordVariableLookup( - node.declaredElement, + node.declaredFragment?.element, name.offset, name.length, ); diff --git a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart index 468dc15b48f..91ff5088526 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart @@ -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); } } diff --git a/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart b/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart index 2124175cd75..ff964043d51 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart @@ -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) { diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart index 5791a965cd3..d6d524820e2 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart @@ -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; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart index d0be61e5af5..e0405f4d031 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart @@ -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); diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart index 54db29dcb42..6db1a03074f 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart @@ -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; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_null_check_to_null_aware_element_or_entry.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_null_check_to_null_aware_element_or_entry.dart index 6baad64021d..db2f3e8aeef 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_null_check_to_null_aware_element_or_entry.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_null_check_to_null_aware_element_or_entry.dart @@ -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 '?'. diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_if_case_statement.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_if_case_statement.dart index 31cae6795d3..5106a1411fc 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_if_case_statement.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_if_case_statement.dart @@ -239,7 +239,7 @@ extension on Statement { return null; } - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredFragment?.element; if (declaredElement is! LocalVariableElement) { return null; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_wildcard_variable.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_wildcard_variable.dart index da277a1f21f..dd339dad08c 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_wildcard_variable.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_wildcard_variable.dart @@ -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; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/destructure_local_variable_assignment.dart b/pkg/analysis_server/lib/src/services/correction/dart/destructure_local_variable_assignment.dart index eaccd7be11e..9d23daf2d9c 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/destructure_local_variable_assignment.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/destructure_local_variable_assignment.dart @@ -33,7 +33,7 @@ class DestructureLocalVariableAssignment extends ResolvedCorrectionProducer { Future 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(); if (function == null) return; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/join_variable_declaration.dart b/pkg/analysis_server/lib/src/services/correction/dart/join_variable_declaration.dart index 508885f0424..0e799e08398 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/join_variable_declaration.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/join_variable_declaration.dart @@ -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; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/make_variable_nullable.dart b/pkg/analysis_server/lib/src/services/correction/dart/make_variable_nullable.dart index 039802bd0b3..8b3850d86ba 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/make_variable_nullable.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/make_variable_nullable.dart @@ -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; } } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_leading_underscore.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_leading_underscore.dart index 6b5084aee47..451dabfb9f9 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/remove_leading_underscore.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_leading_underscore.dart @@ -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; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_unused_local_variable.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_unused_local_variable.dart index 63aeb4123ca..5e111a041af 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/remove_unused_local_variable.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_unused_local_variable.dart @@ -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; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/rename_to_camel_case.dart b/pkg/analysis_server/lib/src/services/correction/dart/rename_to_camel_case.dart index 5a24e672f38..b4b939432eb 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/rename_to_camel_case.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/rename_to_camel_case.dart @@ -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; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/replace_conditional_with_if_else.dart b/pkg/analysis_server/lib/src/services/correction/dart/replace_conditional_with_if_else.dart index ab0401749da..9ffe756cded 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/replace_conditional_with_if_else.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/replace_conditional_with_if_else.dart @@ -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) { diff --git a/pkg/analysis_server/lib/src/services/correction/dart/split_variable_declaration.dart b/pkg/analysis_server/lib/src/services/correction/dart/split_variable_declaration.dart index 1c4ba44bd9d..3b36a6e5d58 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/split_variable_declaration.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/split_variable_declaration.dart @@ -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; diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/visible_ranges_computer.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/visible_ranges_computer.dart index 7416dc530cf..88109f0b9ef 100644 --- a/pkg/analysis_server/lib/src/services/refactoring/legacy/visible_ranges_computer.dart +++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/visible_ranges_computer.dart @@ -14,8 +14,11 @@ class VisibleRangesComputer extends GeneralizingAstVisitor { @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 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 { 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); } } diff --git a/pkg/analysis_server/lib/src/status/utilities/ast_writer.dart b/pkg/analysis_server/lib/src/status/utilities/ast_writer.dart index f04fe54509e..ef3ed76b26b 100644 --- a/pkg/analysis_server/lib/src/status/utilities/ast_writer.dart +++ b/pkg/analysis_server/lib/src/status/utilities/ast_writer.dart @@ -55,7 +55,7 @@ class AstWriter extends UnifyingAstVisitor 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; diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md index 6d50b0a0be8..8e4a85a3d80 100644 --- a/pkg/analyzer/CHANGELOG.md +++ b/pkg/analyzer/CHANGELOG.md @@ -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. diff --git a/pkg/analyzer/api.txt b/pkg/analyzer/api.txt index 0491cbaf078..397ed833d28 100644 --- a/pkg/analyzer/api.txt +++ b/pkg/analyzer/api.txt @@ -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?) diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart index 27de1b09f71..1eb9ad80abe 100644 --- a/pkg/analyzer/lib/src/dart/ast/ast.dart +++ b/pkg/analyzer/lib/src/dart/ast/ast.dart @@ -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(); } - @Deprecated('Use declaredElement instead') + @Deprecated('Use declaredFragment instead') @experimental @override LocalVariableElementImpl? get declaredElement2 { diff --git a/pkg/analyzer/lib/src/dart/ast/element_locator.dart b/pkg/analyzer/lib/src/dart/ast/element_locator.dart index fb2ccd7a299..24f30085720 100644 --- a/pkg/analyzer/lib/src/dart/ast/element_locator.dart +++ b/pkg/analyzer/lib/src/dart/ast/element_locator.dart @@ -43,7 +43,7 @@ class _ElementMapper2 extends GeneralizingAstVisitor { @override Element? visitCatchClauseParameter(CatchClauseParameter node) { - return node.declaredElement; + return node.declaredFragment?.element; } @override @@ -80,12 +80,12 @@ class _ElementMapper2 extends GeneralizingAstVisitor { @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 { @override Element? visitVariableDeclaration(VariableDeclaration node) { - return node.declaredFragment?.element ?? node.declaredElement; + return node.declaredFragment?.element ?? node.declaredFragment?.element; } } diff --git a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart index 8abb25ea73e..43ec04f27d0 100644 --- a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart +++ b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart @@ -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 { 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 { 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 { 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) { diff --git a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart index d4597a87bad..3e7c050ef30 100644 --- a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart +++ b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart @@ -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), diff --git a/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart b/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart index 41d46ba5bc1..da3debd0c47 100644 --- a/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart +++ b/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart @@ -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) { diff --git a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart index 9ce1564ba3e..f2af6fab740 100644 --- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart +++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart @@ -61,14 +61,14 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor { 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 { @override void visitCatchClauseParameter(CatchClauseParameter node) { - _visitLocalVariableElement(node.declaredElement!); + _visitLocalVariableElement(node.declaredFragment!.element); super.visitCatchClauseParameter(node); } @@ -553,7 +553,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { 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 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 visitVariableDeclarationStatement(VariableDeclarationStatement node) { for (var variable in node.variables.variables) { _visitLocalVariableElement( - variable.declaredElement as LocalVariableElement, + variable.declaredFragment!.element as LocalVariableElement, ); } diff --git a/pkg/analyzer/lib/src/generated/exhaustiveness.dart b/pkg/analyzer/lib/src/generated/exhaustiveness.dart index 46edd656315..13c7ab0a09f 100644 --- a/pkg/analyzer/lib/src/generated/exhaustiveness.dart +++ b/pkg/analyzer/lib/src/generated/exhaustiveness.dart @@ -568,7 +568,7 @@ class PatternConverter with SpaceCreator { return createVariableSpace( path, contextType, - pattern.declaredElement!.type, + pattern.declaredFragment!.element.type, nonNull: nonNull, ); } else if (pattern is ObjectPattern) { diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart index f6431ada74b..1aa906b2fac 100644 --- a/pkg/analyzer/lib/src/generated/resolver.dart +++ b/pkg/analyzer/lib/src/generated/resolver.dart @@ -4083,9 +4083,9 @@ class ResolverVisitor extends ThrowingAstVisitor // 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 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 { 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 { super.visitVariableDeclaration(node); if (node.parent!.parent is ForParts) { - _define(node.declaredElement!); + _define(node.declaredFragment!.element); } } diff --git a/pkg/analyzer/lib/src/test_utilities/find_element2.dart b/pkg/analyzer/lib/src/test_utilities/find_element2.dart index 9f0ef978f8d..666b94225ed 100644 --- a/pkg/analyzer/lib/src/test_utilities/find_element2.dart +++ b/pkg/analyzer/lib/src/test_utilities/find_element2.dart @@ -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); diff --git a/pkg/analyzer/lib/src/test_utilities/find_node.dart b/pkg/analyzer/lib/src/test_utilities/find_node.dart index 6d35565c2d5..8914d821f3d 100644 --- a/pkg/analyzer/lib/src/test_utilities/find_node.dart +++ b/pkg/analyzer/lib/src/test_utilities/find_node.dart @@ -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) { diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml index a9d4b4d586e..e16325a7b70 100644 --- a/pkg/analyzer/pubspec.yaml +++ b/pkg/analyzer/pubspec.yaml @@ -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 diff --git a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart index 52a9d70ea85..1cf77663eca 100644 --- a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart +++ b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart @@ -246,7 +246,7 @@ void test(List listA, List 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); diff --git a/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart index 068b30364fb..11f264bead8 100644 --- a/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart +++ b/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart @@ -375,12 +375,13 @@ class _DartNavigationComputerVisitor extends RecursiveAstVisitor { @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); } diff --git a/pkg/analyzer_plugin/lib/src/utilities/visitors/local_declaration_visitor.dart b/pkg/analyzer_plugin/lib/src/utilities/visitors/local_declaration_visitor.dart index 6884286b8eb..706a074981e 100644 --- a/pkg/analyzer_plugin/lib/src/utilities/visitors/local_declaration_visitor.dart +++ b/pkg/analyzer_plugin/lib/src/utilities/visitors/local_declaration_visitor.dart @@ -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) { diff --git a/pkg/linter/lib/src/rules/always_specify_types.dart b/pkg/linter/lib/src/rules/always_specify_types.dart index 038f4fb0861..aeb74f23736 100644 --- a/pkg/linter/lib/src/rules/always_specify_types.dart +++ b/pkg/linter/lib/src/rules/always_specify_types.dart @@ -71,7 +71,7 @@ class _Visitor extends SimpleAstVisitor { 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( diff --git a/pkg/linter/lib/src/rules/avoid_catches_without_on_clauses.dart b/pkg/linter/lib/src/rules/avoid_catches_without_on_clauses.dart index da2278105a6..ec2ff8a20fa 100644 --- a/pkg/linter/lib/src/rules/avoid_catches_without_on_clauses.dart +++ b/pkg/linter/lib/src/rules/avoid_catches_without_on_clauses.dart @@ -141,7 +141,7 @@ class _Visitor extends SimpleAstVisitor { @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); diff --git a/pkg/linter/lib/src/rules/avoid_init_to_null.dart b/pkg/linter/lib/src/rules/avoid_init_to_null.dart index b518046ad32..8f1b15c4604 100644 --- a/pkg/linter/lib/src/rules/avoid_init_to_null.dart +++ b/pkg/linter/lib/src/rules/avoid_init_to_null.dart @@ -60,8 +60,7 @@ class _Visitor extends SimpleAstVisitor { @override void visitVariableDeclaration(VariableDeclaration node) { - var declaredElement = - node.declaredElement ?? node.declaredFragment?.element; + var declaredElement = node.declaredFragment?.element; if (declaredElement != null && !node.isConst && !node.isFinal && diff --git a/pkg/linter/lib/src/rules/cascade_invocations.dart b/pkg/linter/lib/src/rules/cascade_invocations.dart index 932adcdd4fd..09461db2c04 100644 --- a/pkg/linter/lib/src/rules/cascade_invocations.dart +++ b/pkg/linter/lib/src/rules/cascade_invocations.dart @@ -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; } diff --git a/pkg/linter/lib/src/rules/prefer_final_in_for_each.dart b/pkg/linter/lib/src/rules/prefer_final_in_for_each.dart index be94ca41025..bc4d89745bc 100644 --- a/pkg/linter/lib/src/rules/prefer_final_in_for_each.dart +++ b/pkg/linter/lib/src/rules/prefer_final_in_for_each.dart @@ -50,7 +50,7 @@ class _Visitor extends SimpleAstVisitor { if (loopVariable.isFinal) return; var function = node.thisOrAncestorOfType(); - 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 { 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); } diff --git a/pkg/linter/lib/src/rules/prefer_final_locals.dart b/pkg/linter/lib/src/rules/prefer_final_locals.dart index e592f37cb34..7bf02e82b3a 100644 --- a/pkg/linter/lib/src/rules/prefer_final_locals.dart +++ b/pkg/linter/lib/src/rules/prefer_final_locals.dart @@ -43,7 +43,7 @@ class _DeclaredVariableVisitor extends RecursiveAstVisitor { @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 { 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 { 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))) { diff --git a/pkg/linter/lib/src/rules/prefer_foreach.dart b/pkg/linter/lib/src/rules/prefer_foreach.dart index 2139f8a8109..dade684e3ca 100644 --- a/pkg/linter/lib/src/rules/prefer_foreach.dart +++ b/pkg/linter/lib/src/rules/prefer_foreach.dart @@ -53,7 +53,7 @@ class _PreferForEachVisitor extends SimpleAstVisitor { 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; diff --git a/pkg/linter/lib/src/rules/prefer_function_declarations_over_variables.dart b/pkg/linter/lib/src/rules/prefer_function_declarations_over_variables.dart index a65ab57af74..a7c02745a86 100644 --- a/pkg/linter/lib/src/rules/prefer_function_declarations_over_variables.dart +++ b/pkg/linter/lib/src/rules/prefer_function_declarations_over_variables.dart @@ -50,7 +50,7 @@ class _Visitor extends SimpleAstVisitor { rule.reportAtNode(node); } } else { - var declaredElement = node.declaredElement; + var declaredElement = node.declaredFragment?.element; if (declaredElement != null && !function.isPotentiallyMutatedInScope(declaredElement)) { rule.reportAtNode(node); diff --git a/pkg/linter/lib/src/rules/unnecessary_lambdas.dart b/pkg/linter/lib/src/rules/unnecessary_lambdas.dart index ebea3b7f798..5940d7b09a4 100644 --- a/pkg/linter/lib/src/rules/unnecessary_lambdas.dart +++ b/pkg/linter/lib/src/rules/unnecessary_lambdas.dart @@ -213,8 +213,7 @@ class _Visitor extends SimpleAstVisitor { 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; diff --git a/pkg/linter/lib/src/rules/unnecessary_null_checks.dart b/pkg/linter/lib/src/rules/unnecessary_null_checks.dart index 4d196c79e8d..7dd2109089b 100644 --- a/pkg/linter/lib/src/rules/unnecessary_null_checks.dart +++ b/pkg/linter/lib/src/rules/unnecessary_null_checks.dart @@ -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 diff --git a/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart b/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart index 1f3e4bab812..1803bf63a18 100644 --- a/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart +++ b/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart @@ -48,7 +48,7 @@ class _Visitor extends SimpleAstVisitor { 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 { 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; } diff --git a/pkg/linter/lib/src/rules/unnecessary_parenthesis.dart b/pkg/linter/lib/src/rules/unnecessary_parenthesis.dart index 7684945749c..11de163355c 100644 --- a/pkg/linter/lib/src/rules/unnecessary_parenthesis.dart +++ b/pkg/linter/lib/src/rules/unnecessary_parenthesis.dart @@ -70,7 +70,7 @@ class _Visitor extends SimpleAstVisitor { // 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; } diff --git a/pkg/linter/lib/src/rules/use_null_aware_elements.dart b/pkg/linter/lib/src/rules/use_null_aware_elements.dart index 27459fdbe07..d2aceea0ff4 100644 --- a/pkg/linter/lib/src/rules/use_null_aware_elements.dart +++ b/pkg/linter/lib/src/rules/use_null_aware_elements.dart @@ -59,10 +59,10 @@ class _Visitor extends SimpleAstVisitor { 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) { diff --git a/pkg/linter/lib/src/rules/use_rethrow_when_possible.dart b/pkg/linter/lib/src/rules/use_rethrow_when_possible.dart index 50e179f9a93..c197e8736bb 100644 --- a/pkg/linter/lib/src/rules/use_rethrow_when_possible.dart +++ b/pkg/linter/lib/src/rules/use_rethrow_when_possible.dart @@ -42,7 +42,8 @@ class _Visitor extends SimpleAstVisitor { var element = node.expression.canonicalElement; if (element != null) { var catchClause = node.thisOrAncestorOfType(); - var exceptionParameter = catchClause?.exceptionParameter?.declaredElement; + var exceptionParameter = + catchClause?.exceptionParameter?.declaredFragment?.element; if (element == exceptionParameter) { rule.reportAtNode(node); } diff --git a/pkg/linter/lib/src/rules/use_string_buffers.dart b/pkg/linter/lib/src/rules/use_string_buffers.dart index 9d59627890e..bf622f8af40 100644 --- a/pkg/linter/lib/src/rules/use_string_buffers.dart +++ b/pkg/linter/lib/src/rules/use_string_buffers.dart @@ -129,7 +129,7 @@ class _UseStringBufferVisitor extends SimpleAstVisitor { @override void visitVariableDeclarationStatement(VariableDeclarationStatement node) { for (var variable in node.variables.variables) { - localElements.add(variable.declaredElement); + localElements.add(variable.declaredFragment?.element); } } }