From f9ba5c03df8287c7c6e34e19336df473841e256a Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Tue, 9 Aug 2022 17:08:56 +0000 Subject: [PATCH 1/6] AST for RecordTypeAnnotation. Change-Id: I3d52c97fe4f01cfb06923829e6e519d1990ae62b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254120 Reviewed-by: Samuel Rawlins Reviewed-by: Brian Wilkerson Commit-Queue: Konstantin Shcheglov --- pkg/analyzer/lib/dart/ast/ast.dart | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart index 3b30d0e80bdb5..9bf0421c99aed 100644 --- a/pkg/analyzer/lib/dart/ast/ast.dart +++ b/pkg/analyzer/lib/dart/ast/ast.dart @@ -4019,6 +4019,85 @@ abstract class PropertyAccess Expression? get target; } +/// A record type. +/// +/// recordType ::= +/// '(' recordTypeFields ',' recordTypeNamedFields ')' +/// | '(' recordTypeFields ','? ')' +/// | '(' recordTypeNamedFields ')' +/// +/// recordTypeFields ::= recordTypeField ( ',' recordTypeField )* +/// +/// recordTypeField ::= metadata type identifier? +/// +/// recordTypeNamedFields ::= +/// '{' recordTypeNamedField +/// ( ',' recordTypeNamedField )* ','? '}' +/// +/// recordTypeNamedField ::= metadata type identifier +/// +/// Clients may not extend, implement or mix-in this class. +@experimental +abstract class RecordTypeAnnotation implements TypeAnnotation { + /// The optional named fields. + RecordTypeAnnotationNamedFields? get namedFields; + + /// The positional fields (might be empty). + NodeList get positionalFields; +} + +/// A field in a [RecordTypeAnnotation]. +/// +/// Clients may not extend, implement or mix-in this class. +@experimental +abstract class RecordTypeAnnotationField implements AstNode { + /// The comma at the end of the field, either before the next field, + /// or optional after the last field. + Token? get comma; + + /// The annotations associated with the field. + NodeList get metadata; + + /// The optional name of the field. + Token? get name; + + /// The type of the field. + TypeAnnotation get type; +} + +/// A named field in a [RecordTypeAnnotation]. +/// +/// Clients may not extend, implement or mix-in this class. +@experimental +abstract class RecordTypeAnnotationNamedField + implements RecordTypeAnnotationField { + /// The name of the field. + @override + Token get name; +} + +/// The portion of a [RecordTypeAnnotation] with named fields. +/// +/// Clients may not extend, implement or mix-in this class. +@experimental +abstract class RecordTypeAnnotationNamedFields implements AstNode { + /// The fields contained in the block. + NodeList get fields; + + /// The left curly bracket. + Token get leftBracket; + + /// The right curly bracket. + Token get rightBracket; +} + +/// A positional field in a [RecordTypeAnnotation]. +/// +/// Clients may not extend, implement or mix-in this class. +@experimental +abstract class RecordTypeAnnotationPositionalField + implements RecordTypeAnnotationField {} + /// The invocation of a constructor in the same class from within a /// constructor's initialization list. /// @@ -4668,6 +4747,7 @@ abstract class TypeAlias implements NamedCompilationUnitMember { /// type ::= /// [NamedType] /// | [GenericFunctionType] +/// | [RecordTypeAnnotation] /// /// Clients may not extend, implement or mix-in this class. abstract class TypeAnnotation implements AstNode { From f4c009dc339ef7051868ecf1cb47ce37f29c0a8e Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Tue, 9 Aug 2022 17:26:06 +0000 Subject: [PATCH 2/6] Deprecate Declaration.declaredElement, use 'declaredElement2' instead. This is necessary to separate `ClassElement`, `EnumElement`, and `MixinElement`. And, in the future, augmentations like `ClassAugmentationElement`, etc. Change-Id: Iecd2f8707212e53ef56f0e101880c7bab9e5d057 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254104 Commit-Queue: Konstantin Shcheglov Reviewed-by: Brian Wilkerson --- .../lib/src/computer/computer_outline.dart | 2 +- .../lib/src/computer/computer_overrides.dart | 4 +- .../domains/analysis/occurrences_dart.dart | 2 +- ...enum_constant_constructor_contributor.dart | 3 +- .../completion/dart/feature_computer.dart | 8 +- .../dart/field_formal_contributor.dart | 6 +- .../dart/local_library_contributor.dart | 2 +- .../dart/local_reference_contributor.dart | 54 +-- .../dart/redirecting_contributor.dart | 4 +- .../completion/dart/suggestion_builder.dart | 34 +- .../dart/super_formal_contributor.dart | 2 +- .../correction/dart/abstract_producer.dart | 2 +- .../services/correction/dart/add_async.dart | 4 +- .../correction/dart/add_call_super.dart | 2 +- .../add_diagnostic_property_reference.dart | 7 +- .../correction/dart/add_explicit_cast.dart | 2 +- .../dart/add_field_formal_parameters.dart | 2 +- .../dart/add_key_to_constructors.dart | 2 +- .../correction/dart/add_null_check.dart | 4 +- .../add_super_constructor_invocation.dart | 2 +- .../correction/dart/add_type_annotation.dart | 6 +- .../services/correction/dart/change_to.dart | 4 +- .../dart/convert_class_to_enum.dart | 10 +- .../dart/convert_class_to_mixin.dart | 2 +- .../dart/convert_into_block_body.dart | 4 +- .../dart/convert_into_final_field.dart | 2 +- .../correction/dart/create_constructor.dart | 2 +- .../create_constructor_for_final_fields.dart | 2 +- .../dart/create_constructor_super.dart | 2 +- .../correction/dart/create_method.dart | 2 +- .../dart/create_missing_overrides.dart | 2 +- .../correction/dart/encapsulate_field.dart | 2 +- .../flutter_convert_to_stateful_widget.dart | 6 +- .../flutter_convert_to_stateless_widget.dart | 10 +- .../correction/dart/import_library.dart | 4 +- .../dart/join_variable_declaration.dart | 4 +- .../dart/make_variable_nullable.dart | 4 +- .../correction/dart/remove_abstract.dart | 2 +- .../correction/dart/remove_unused.dart | 6 +- .../dart/remove_unused_local_variable.dart | 2 +- .../dart/rename_method_parameter.dart | 2 +- .../replace_conditional_with_if_else.dart | 2 +- .../correction/dart/replace_return_type.dart | 4 +- .../dart/split_variable_declaration.dart | 2 +- .../correction/dart/surround_with.dart | 2 +- .../fix/data_driven/rename_parameter.dart | 2 +- .../lib/src/services/correction/util.dart | 6 +- .../src/services/kythe/kythe_visitors.dart | 24 +- .../refactoring/legacy/extract_method.dart | 10 +- .../refactoring/legacy/extract_widget.dart | 4 +- .../legacy/rename_class_member.dart | 34 +- .../legacy/visible_ranges_computer.dart | 6 +- .../lib/src/status/ast_writer.dart | 12 +- .../lib/src/utilities/extensions/ast.dart | 6 +- .../legacy/rename_constructor_test.dart | 2 +- .../tool/bulk_fix/parse_utils.dart | 2 +- .../code_completion/relevance_metrics.dart | 6 +- pkg/analyzer/CHANGELOG.md | 3 + pkg/analyzer/lib/dart/ast/ast.dart | 72 +++- pkg/analyzer/lib/src/dart/analysis/index.dart | 10 +- pkg/analyzer/lib/src/dart/ast/ast.dart | 95 +++-- .../lib/src/dart/ast/element_locator.dart | 20 +- .../src/dart/constant/constant_verifier.dart | 6 +- .../lib/src/dart/constant/utilities.dart | 8 +- .../lib/src/dart/element/class_hierarchy.dart | 2 +- .../dart/element/inheritance_manager3.dart | 2 +- pkg/analyzer/lib/src/dart/element/scope.dart | 16 +- pkg/analyzer/lib/src/dart/micro/utils.dart | 2 +- .../dart/resolver/flow_analysis_visitor.dart | 6 +- .../lib/src/dart/resolver/for_resolver.dart | 5 +- .../function_expression_resolver.dart | 2 +- .../dart/resolver/legacy_type_asserter.dart | 8 +- .../src/dart/resolver/resolution_visitor.dart | 44 +-- pkg/analyzer/lib/src/dart/resolver/scope.dart | 4 +- .../variable_declaration_resolver.dart | 2 +- .../src/error/best_practices_verifier.dart | 35 +- .../error/deprecated_member_use_verifier.dart | 4 +- .../error/duplicate_definition_verifier.dart | 51 ++- .../error/getter_setter_types_verifier.dart | 14 +- .../lib/src/error/inheritance_override.dart | 57 +-- .../src/error/must_call_super_verifier.dart | 4 +- .../lib/src/error/override_verifier.dart | 12 +- .../error/unused_local_elements_verifier.dart | 28 +- .../lib/src/generated/element_resolver.dart | 2 +- .../lib/src/generated/error_verifier.dart | 80 +++-- .../lib/src/generated/ffi_verifier.dart | 10 +- pkg/analyzer/lib/src/generated/resolver.dart | 72 ++-- pkg/analyzer/lib/src/lint/linter.dart | 2 +- .../lib/src/summary2/ast_binary_writer.dart | 2 +- .../src/summary2/default_types_builder.dart | 18 +- .../lib/src/summary2/element_builder.dart | 30 +- .../src/summary2/function_type_builder.dart | 2 +- .../lib/src/summary2/library_builder.dart | 2 +- .../lib/src/summary2/macro_declarations.dart | 6 +- .../lib/src/summary2/named_type_builder.dart | 2 +- .../lib/src/summary2/reference_resolver.dart | 28 +- .../lib/src/summary2/simply_bounded.dart | 12 +- pkg/analyzer/lib/src/summary2/type_alias.dart | 4 +- .../lib/src/summary2/types_builder.dart | 35 +- .../lib/src/summary2/variance_builder.dart | 6 +- pkg/analyzer/lib/src/task/strong/checker.dart | 4 +- .../lib/src/test_utilities/find_element.dart | 6 +- .../lib/src/util/ast_data_extractor.dart | 4 +- .../test/generated/resolver_test_case.dart | 2 +- .../test/generated/strong_mode_test.dart | 44 +-- .../inferred_variable_types_test.dart | 4 +- .../test/id_tests/inheritance_test.dart | 4 +- .../dart/analysis/driver_resolution_test.dart | 331 +++++++++--------- .../test/src/dart/analysis/driver_test.dart | 12 +- .../test/src/dart/analysis/index_test.dart | 12 +- .../results/get_element_declaration_test.dart | 22 +- .../dart/analysis/session_helper_test.dart | 2 +- .../test/src/dart/analysis/session_test.dart | 6 +- .../test/src/dart/element/element_test.dart | 6 +- .../generic_function_type_test.dart | 2 +- .../dart/resolution/local_function_test.dart | 2 +- .../test/src/dart/resolution/mixin_test.dart | 10 +- .../test/src/dart/resolution/resolution.dart | 2 +- .../inference_update_1_test.dart | 8 +- .../linter/resolve_name_in_scope_test.dart | 2 +- .../src/summary/resolved_ast_printer.dart | 34 +- pkg/analyzer/test/utils.dart | 4 +- .../change_builder/change_builder_dart.dart | 8 +- .../completion/completion_target.dart | 6 +- .../lib/src/utilities/completion/optype.dart | 2 +- .../visitors/local_declaration_visitor.dart | 10 +- .../inherited_reference_contributor.dart | 8 +- .../utilities/navigation/navigation_dart.dart | 10 +- .../change_builder_dart_test.dart | 8 +- pkg/nnbd_migration/lib/instrumentation.dart | 6 +- pkg/nnbd_migration/lib/src/edge_builder.dart | 25 +- pkg/nnbd_migration/lib/src/fix_builder.dart | 4 +- pkg/nnbd_migration/lib/src/node_builder.dart | 36 +- pkg/nnbd_migration/lib/src/variables.dart | 6 +- .../test/migration_visitor_test_base.dart | 4 +- .../test/node_builder_test.dart | 10 +- 136 files changed, 988 insertions(+), 855 deletions(-) diff --git a/pkg/analysis_server/lib/src/computer/computer_outline.dart b/pkg/analysis_server/lib/src/computer/computer_outline.dart index 237e310d26925..417657f9d6a30 100644 --- a/pkg/analysis_server/lib/src/computer/computer_outline.dart +++ b/pkg/analysis_server/lib/src/computer/computer_outline.dart @@ -414,7 +414,7 @@ class DartUnitOutlineComputer { /// Returns `true` if the given [element] is not `null` and deprecated. static bool _isDeprecated(Declaration declaration) { - var element = declaration.declaredElement; + var element = declaration.declaredElement2; return element != null && element.hasDeprecated; } diff --git a/pkg/analysis_server/lib/src/computer/computer_overrides.dart b/pkg/analysis_server/lib/src/computer/computer_overrides.dart index 65d7d1850c326..4600f6f4b6c3b 100644 --- a/pkg/analysis_server/lib/src/computer/computer_overrides.dart +++ b/pkg/analysis_server/lib/src/computer/computer_overrides.dart @@ -68,7 +68,7 @@ class DartUnitOverridesComputer { if (classMember.isStatic) { continue; } - _addOverride(classMember.name2, classMember.declaredElement); + _addOverride(classMember.name2, classMember.declaredElement2); } if (classMember is FieldDeclaration) { if (classMember.isStatic) { @@ -76,7 +76,7 @@ class DartUnitOverridesComputer { } List fields = classMember.fields.variables; for (var field in fields) { - _addOverride(field.name2, field.declaredElement); + _addOverride(field.name2, field.declaredElement2); } } } 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 47b7bbff81b00..adc06b9f40f38 100644 --- a/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart +++ b/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart @@ -28,7 +28,7 @@ class _DartUnitOccurrencesComputerVisitor extends RecursiveAstVisitor { @override void visitEnumConstantDeclaration(EnumConstantDeclaration node) { - _addOccurrence(node.declaredElement!, node.name2.offset); + _addOccurrence(node.declaredElement2!, node.name2.offset); super.visitEnumConstantDeclaration(node); } diff --git a/pkg/analysis_server/lib/src/services/completion/dart/enum_constant_constructor_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/enum_constant_constructor_contributor.dart index 4663e2059d579..b6215c332ae49 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/enum_constant_constructor_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/enum_constant_constructor_contributor.dart @@ -5,7 +5,6 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element.dart'; /// A contributor that produces suggestions for constructors to be invoked /// in enum constants. @@ -46,7 +45,7 @@ class EnumConstantConstructorContributor extends DartCompletionContributor { return; } - var enumElement = enumDeclaration.declaredElement as ClassElement; + var enumElement = enumDeclaration.declaredElement2!; for (var constructor in enumElement.constructors) { builder.suggestConstructor( constructor, 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 03420db3a963a..2898c90efb01b 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 @@ -366,13 +366,13 @@ class FeatureComputer { : (node as ForElement).forLoopParts; if (loopParts is ForPartsWithDeclarations) { for (var declaredVariable in loopParts.variables.variables.reversed) { - if (declaredVariable.declaredElement == variable) { + if (declaredVariable.declaredElement2 == variable) { return distance; } distance++; } } else if (loopParts is ForEachPartsWithDeclaration) { - if (loopParts.loopVariable.declaredElement == variable) { + if (loopParts.loopVariable.declaredElement2 == variable) { return distance; } distance++; @@ -384,7 +384,7 @@ class FeatureComputer { var index = variables.indexOf(node); for (var i = index - 1; i >= 0; i--) { var declaredVariable = variables[i]; - if (declaredVariable.declaredElement == variable) { + if (declaredVariable.declaredElement2 == variable) { return distance; } distance++; @@ -412,7 +412,7 @@ class FeatureComputer { if (statement is VariableDeclarationStatement) { for (var declaredVariable in statement.variables.variables.reversed) { - if (declaredVariable.declaredElement == variable) { + if (declaredVariable.declaredElement2 == variable) { return distance; } distance++; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart index 2157dcccb5313..2bf08ba3c1433 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart @@ -47,12 +47,12 @@ class FieldFormalContributor extends DartCompletionContributor { } } - ClassElement? enclosingClass; + InterfaceElement? enclosingClass; var constructorParent = constructor.parent; if (constructorParent is ClassDeclaration) { - enclosingClass = constructorParent.declaredElement; + enclosingClass = constructorParent.declaredElement2; } else if (constructorParent is EnumDeclaration) { - enclosingClass = constructorParent.declaredElement; + enclosingClass = constructorParent.declaredElement2; } else { return; } diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart index bdc06f41666ea..9a58903754bcd 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart @@ -47,7 +47,7 @@ class LibraryElementSuggestionBuilder extends GeneralizingElementVisitor { @override void visitClassElement(ClassElement element) { if (opType.includeTypeNameSuggestions) { - builder.suggestClass(element, prefix: prefix); + builder.suggestInterface(element, prefix: prefix); } if (opType.includeConstructorSuggestions) { _addConstructorSuggestions(element); diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart index b805f2323b32a..8635cac42c7b2 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart @@ -85,9 +85,9 @@ class LocalReferenceContributor extends DartCompletionContributor { if (member != null) { var enclosingNode = member.parent; if (enclosingNode is ClassDeclaration) { - _addForInterface(enclosingNode.declaredElement!); + _addForInterface(enclosingNode.declaredElement2!); } else if (enclosingNode is MixinDeclaration) { - _addForInterface(enclosingNode.declaredElement!); + _addForInterface(enclosingNode.declaredElement2!); } } } @@ -217,14 +217,14 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredClass(ClassDeclaration declaration) { - _declaredClassElement(declaration.declaredElement); + _declaredInterfaceElement(declaration.declaredElement2); } @override void declaredClassTypeAlias(ClassTypeAlias declaration) { - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredElement2; if (declaredElement != null && opType.includeTypeNameSuggestions) { - builder.suggestClass(declaredElement); + builder.suggestInterface(declaredElement); } } @@ -235,12 +235,12 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredEnum(EnumDeclaration declaration) { - _declaredClassElement(declaration.declaredElement); + _declaredInterfaceElement(declaration.declaredElement2); } @override void declaredExtension(ExtensionDeclaration declaration) { - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredElement2; if (declaredElement != null && visibilityTracker._isVisible(declaredElement) && opType.includeReturnValueSuggestions && @@ -251,7 +251,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredField(FieldDeclaration fieldDecl, VariableDeclaration varDecl) { - var field = varDecl.declaredElement; + var field = varDecl.declaredElement2; if (field is FieldElement && ((visibilityTracker._isVisible(field) && opType.includeReturnValueSuggestions && @@ -260,7 +260,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { var inheritanceDistance = 0.0; var enclosingClass = request.target.containingNode .thisOrAncestorOfType(); - var enclosingElement = enclosingClass?.declaredElement; + var enclosingElement = enclosingClass?.declaredElement2; if (enclosingElement != null) { var enclosingElement = field.enclosingElement3; if (enclosingElement is ClassElement) { @@ -274,7 +274,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredFunction(FunctionDeclaration declaration) { - if (visibilityTracker._isVisible(declaration.declaredElement) && + if (visibilityTracker._isVisible(declaration.declaredElement2) && (opType.includeReturnValueSuggestions || opType.includeVoidReturnSuggestions)) { if (declaration.isSetter) { @@ -287,7 +287,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { return; } } - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredElement2; if (declaredElement is FunctionElement) { builder.suggestTopLevelFunction(declaredElement, kind: _defaultKind); } else if (declaredElement is PropertyAccessorElement) { @@ -298,7 +298,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredFunctionTypeAlias(FunctionTypeAlias declaration) { - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredElement2; if (declaredElement != null && opType.includeTypeNameSuggestions) { builder.suggestTypeAlias(declaredElement); } @@ -306,7 +306,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredGenericTypeAlias(GenericTypeAlias declaration) { - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredElement2; if (declaredElement is TypeAliasElement && opType.includeTypeNameSuggestions) { builder.suggestTypeAlias(declaredElement); @@ -332,7 +332,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredMethod(MethodDeclaration declaration) { - var element = declaration.declaredElement; + var element = declaration.declaredElement2; if (visibilityTracker._isVisible(element) && (opType.includeReturnValueSuggestions || opType.includeVoidReturnSuggestions) && @@ -345,7 +345,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { if (enclosingElement is ClassElement) { inheritanceDistance = request.featureComputer .inheritanceDistanceFeature( - enclosingClass.declaredElement!, enclosingElement); + enclosingClass.declaredElement2!, enclosingElement); } } if (element is MethodElement) { @@ -360,12 +360,12 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredMixin(MixinDeclaration declaration) { - var declaredElement = declaration.declaredElement; + var declaredElement = declaration.declaredElement2; if (!inExtendsClause && declaredElement != null && visibilityTracker._isVisible(declaredElement) && opType.includeTypeNameSuggestions) { - builder.suggestClass(declaredElement); + builder.suggestInterface(declaredElement); } } @@ -387,7 +387,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredTopLevelVar( VariableDeclarationList varList, VariableDeclaration varDecl) { - var variableElement = varDecl.declaredElement; + var variableElement = varDecl.declaredElement2; if (variableElement is TopLevelVariableElement && visibilityTracker._isVisible(variableElement) && opType.includeReturnValueSuggestions) { @@ -400,7 +400,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { @override void declaredTypeParameter(TypeParameter node) { - var declaredElement = node.declaredElement; + var declaredElement = node.declaredElement2; if (declaredElement != null && visibilityTracker._isVisible(declaredElement) && opType.includeTypeNameSuggestions) { @@ -414,17 +414,19 @@ class _LocalVisitor extends LocalDeclarationVisitor { super.visitExtendsClause(node); } - void _declaredClassElement(ClassElement? class_) { - if (class_ != null && visibilityTracker._isVisible(class_)) { + void _declaredInterfaceElement(InterfaceElement? element) { + if (element != null && visibilityTracker._isVisible(element)) { if (opType.includeTypeNameSuggestions) { - builder.suggestClass(class_); + builder.suggestInterface(element); } if (!opType.isPrefixed && opType.includeConstructorSuggestions && - class_ is! EnumElement) { - for (final constructor in class_.constructors) { - if (!class_.isAbstract || constructor.isFactory) { + element is ClassElement && + // TODO(scheglov) Remove when separated EnumElement from ClassElement + element is! EnumElement) { + for (final constructor in element.constructors) { + if (!element.isAbstract || constructor.isFactory) { builder.suggestConstructor(constructor); } } @@ -435,7 +437,7 @@ class _LocalVisitor extends LocalDeclarationVisitor { final contextType = request.contextType; if (contextType is InterfaceType) { // TODO(scheglov) This looks not ideal - we should suggest getters. - for (final field in class_.fields) { + for (final field in element.fields) { if (field.isStatic && typeSystem.isSubtypeOf(field.type, contextType)) { builder.suggestStaticField(field); diff --git a/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart index 9cceb5ca98456..23777a9abd30d 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart @@ -23,7 +23,7 @@ class RedirectingContributor extends DartCompletionContributor { // C() : this.^ var containingConstructor = parent.thisOrAncestorOfType(); - var constructorElement = containingConstructor?.declaredElement; + var constructorElement = containingConstructor?.declaredElement2; var classElement = constructorElement?.enclosingElement3; if (classElement != null) { for (var constructor in classElement.constructors) { @@ -51,7 +51,7 @@ class RedirectingContributor extends DartCompletionContributor { // factory C() = ^ var containingConstructor = parent.thisOrAncestorOfType(); - var constructorElement = containingConstructor?.declaredElement; + var constructorElement = containingConstructor?.declaredElement2; var classElement = constructorElement?.enclosingElement3; var libraryElement = request.libraryElement; if (classElement == null) { diff --git a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart index cbdc8398d5b1e..38fdc71602cfc 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart @@ -322,22 +322,6 @@ class SuggestionBuilder { ); } - /// Add a suggestion for a [classElement]. If the class can only be - /// referenced using a prefix, then the [prefix] should be provided. - void suggestClass(ClassElement classElement, {String? prefix}) { - var relevance = _computeTopLevelRelevance(classElement, - elementType: _instantiateInterfaceElement(classElement)); - _addBuilder( - _createCompletionSuggestionBuilder( - classElement, - kind: CompletionSuggestionKind.IDENTIFIER, - prefix: prefix, - relevance: relevance, - isNotImported: isNotImportedLibrary, - ), - ); - } - /// Add a suggestion to insert a closure matching the given function [type]. /// If [includeTrailingComma] is `true` then the completion text will include /// a trailing comma, such as when the closure is part of an argument list. @@ -452,7 +436,7 @@ class SuggestionBuilder { void suggestElement(Element element, {CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) { if (element is ClassElement) { - suggestClass(element); + suggestInterface(element); } else if (element is ConstructorElement) { suggestConstructor(element, kind: kind); } else if (element is ExtensionElement) { @@ -588,6 +572,22 @@ class SuggestionBuilder { ); } + /// Add a suggestion for a [element]. If the class can only be + /// referenced using a prefix, then the [prefix] should be provided. + void suggestInterface(InterfaceElement element, {String? prefix}) { + var relevance = _computeTopLevelRelevance(element, + elementType: _instantiateInterfaceElement(element)); + _addBuilder( + _createCompletionSuggestionBuilder( + element, + kind: CompletionSuggestionKind.IDENTIFIER, + prefix: prefix, + relevance: relevance, + isNotImported: isNotImportedLibrary, + ), + ); + } + /// Add a suggestion for a [keyword]. The [offset] is the offset from the /// beginning of the keyword where the cursor will be left. void suggestKeyword(String keyword, {int? offset}) { diff --git a/pkg/analysis_server/lib/src/services/completion/dart/super_formal_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/super_formal_contributor.dart index 574e844bfa862..adfadc68e30e6 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/super_formal_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/super_formal_contributor.dart @@ -27,7 +27,7 @@ class SuperFormalContributor extends DartCompletionContributor { return; } - var constructorElement = constructor.declaredElement; + var constructorElement = constructor.declaredElement2; constructorElement as ConstructorElementImpl; var superConstructor = constructorElement.superConstructor; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart b/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart index 1d0f41a5db296..31f1cb51e56e4 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart @@ -117,7 +117,7 @@ abstract class CorrectionProducer extends SingleCorrectionProducer { if (parent is VariableDeclaration) { var variableDeclaration = parent; if (variableDeclaration.initializer == expression) { - var variableElement = variableDeclaration.declaredElement; + var variableElement = variableDeclaration.declaredElement2; if (variableElement != null) { return variableElement.type; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart index f4585ed9de16d..db7c3a0911193 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart @@ -41,10 +41,10 @@ class AddAsync extends CorrectionProducer { DartType? returnType; if (parent is FunctionDeclaration) { body = parent.functionExpression.body; - returnType = parent.declaredElement!.returnType; + returnType = parent.declaredElement2!.returnType; } else if (parent is MethodDeclaration) { body = parent.body; - returnType = parent.declaredElement!.returnType; + returnType = parent.declaredElement2!.returnType; } if (body == null || returnType == null) { return; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_call_super.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_call_super.dart index df469d06b423b..7bb200be1fb1a 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_call_super.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_call_super.dart @@ -36,7 +36,7 @@ class AddCallSuper extends CorrectionProducer { if (methodDeclaration == null) return; var classElement = methodDeclaration .thisOrAncestorOfType() - ?.declaredElement; + ?.declaredElement2; if (classElement == null) return; var name = Name(classElement.library.source.uri, node.name); diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart index c1e341a026b49..948d9affd1a0f 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart @@ -40,7 +40,8 @@ class AddDiagnosticPropertyReference extends CorrectionProducer { final classDeclaration = node.thisOrAncestorOfType(); if (classDeclaration == null || - !flutter.isDiagnosticable(classDeclaration.declaredElement!.thisType)) { + !flutter + .isDiagnosticable(classDeclaration.declaredElement2!.thisType)) { return; } @@ -194,13 +195,13 @@ class AddDiagnosticPropertyReference extends CorrectionProducer { DartType? _getReturnType(AstNode node) { if (node is MethodDeclaration) { // Getter. - var element = node.declaredElement; + var element = node.declaredElement2; if (element is PropertyAccessorElement) { return element.returnType; } } else if (node is VariableDeclaration) { // Field. - var element = node.declaredElement; + var element = node.declaredElement2; if (element is FieldElement) { return element.type; } 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 54a7bce7c4f05..8f132a9238df8 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 @@ -38,7 +38,7 @@ class AddExplicitCast extends CorrectionProducer { if (parent is AssignmentExpression && target == parent.rightHandSide) { toType = parent.writeType!; } else if (parent is VariableDeclaration && target == parent.initializer) { - toType = parent.declaredElement!.type; + toType = parent.declaredElement2!.type; } else { // TODO(brianwilkerson) Handle function arguments. return; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_field_formal_parameters.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_field_formal_parameters.dart index b2e5dbea54af8..d28bf0a4b9462 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_field_formal_parameters.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_field_formal_parameters.dart @@ -28,7 +28,7 @@ class AddFieldFormalParameters extends CorrectionProducer { return; } - var superType = classNode.declaredElement!.supertype; + var superType = classNode.declaredElement2!.supertype; if (superType == null) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_key_to_constructors.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_key_to_constructors.dart index 8f04696f5768b..4f4b8649bbb36 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_key_to_constructors.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_key_to_constructors.dart @@ -36,7 +36,7 @@ class AddKeyToConstructors extends CorrectionProducer { return; } var className = node.name; - var constructors = parent.declaredElement?.supertype?.constructors; + var constructors = parent.declaredElement2?.supertype?.constructors; if (constructors == null) { return; } 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 10e3faa8a856d..a1bb384d4311f 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 @@ -74,14 +74,14 @@ class AddNullCheck extends CorrectionProducer { if (parent is AssignmentExpression && target == parent.rightHandSide) { toType = parent.writeType; } else if (parent is VariableDeclaration && target == parent.initializer) { - toType = parent.declaredElement?.type; + toType = parent.declaredElement2?.type; } else if (parent is ArgumentList) { toType = target.staticParameterElement?.type; } else if (parent is IndexExpression) { toType = parent.realTarget.typeOrThrow; } else if (parent is ForEachPartsWithDeclaration) { toType = - typeProvider.iterableType(parent.loopVariable.declaredElement!.type); + typeProvider.iterableType(parent.loopVariable.declaredElement2!.type); } else if (parent is ForEachPartsWithIdentifier) { toType = typeProvider.iterableType(parent.identifier.typeOrThrow); } else if (parent is SpreadElement) { diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_super_constructor_invocation.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_super_constructor_invocation.dart index f1357b4829e89..b5553aaccd049 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_super_constructor_invocation.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_super_constructor_invocation.dart @@ -24,7 +24,7 @@ class AddSuperConstructorInvocation extends MultiCorrectionProducer { return; } - var targetClassElement = targetClassNode.declaredElement!; + var targetClassElement = targetClassNode.declaredElement2!; var superType = targetClassElement.supertype; if (superType == null) { return; 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 63ff7ce9972e3..fc824f2268472 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 @@ -104,7 +104,7 @@ class AddTypeAnnotation extends CorrectionProducer { var targetClassDeclaration = target.thisOrAncestorOfType(); if (targetClassDeclaration != null) { - utils.targetClassElement = targetClassDeclaration.declaredElement; + utils.targetClassElement = targetClassDeclaration.declaredElement2; } } } @@ -115,7 +115,7 @@ class AddTypeAnnotation extends CorrectionProducer { if (declaredIdentifier.type != null) { return; } - var type = declaredIdentifier.declaredElement!.type; + var type = declaredIdentifier.declaredElement2!.type; if (type is! InterfaceType && type is! FunctionType) { return; } @@ -183,7 +183,7 @@ class AddTypeAnnotation extends CorrectionProducer { if (statement is! VariableDeclarationStatement || block is! Block) { return null; } - var element = variable.declaredElement; + var element = variable.declaredElement2; if (element is! LocalVariableElement) { return null; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart b/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart index dd30630262280..dbe0e7beaf0cb 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart @@ -141,7 +141,7 @@ class ChangeTo extends CorrectionProducer { if (target == null) { var clazz = this.node.thisOrAncestorOfType(); if (clazz != null) { - var classElement = clazz.declaredElement!; + var classElement = clazz.declaredElement2!; _updateFinderWithClassMembers(finder, classElement); } } else if (target is ExtensionOverride) { @@ -292,7 +292,7 @@ class ChangeTo extends CorrectionProducer { var targetClassNode = parent.thisOrAncestorOfType(); if (targetClassNode == null) return; - var targetClassElement = targetClassNode.declaredElement!; + var targetClassElement = targetClassNode.declaredElement2!; var superType = targetClassElement.supertype; if (superType == null) return; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart index 3ebbb8f7aa936..7baee1109020f 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart @@ -347,7 +347,7 @@ class _EnumDescription { /// description of the conversion work to be done. Otherwise, return `null`. static _EnumDescription? fromClass(ClassDeclaration node) { // The class must be a concrete class. - var classElement = node.declaredElement; + var classElement = node.declaredElement2; if (classElement == null || classElement.isAbstract) { return null; } @@ -516,7 +516,7 @@ class _EnumDescription { var constructors = _Constructors(); for (var member in classDeclaration.members) { if (member is ConstructorDeclaration) { - var constructor = member.declaredElement; + var constructor = member.declaredElement2; if (constructor is ConstructorElement) { if (!classElement.isPrivate && !constructor.isPrivate) { // Public constructor in public enum. @@ -550,7 +550,7 @@ class _EnumDescription { var fields = fieldList.variables; if (member.isStatic) { for (var field in fields) { - var fieldElement = field.declaredElement; + var fieldElement = field.declaredElement2; if (fieldElement is FieldElement) { var fieldType = fieldElement.type; // The field can be converted to be an enum constant if it @@ -597,7 +597,7 @@ class _EnumDescription { // Non-final instance field. return null; } - var fieldElement = field.declaredElement; + var fieldElement = field.declaredElement2; if (fieldElement is FieldElement) { var fieldType = fieldElement.type; if (fieldElement.name == 'index' && fieldType.isDartCoreInt) { @@ -723,7 +723,7 @@ class _NonEnumVisitor extends _BaseVisitor { @override void visitClassDeclaration(ClassDeclaration node) { - var element = node.declaredElement; + var element = node.declaredElement2; if (element == null) { throw _CannotConvertException('Unresolved'); } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_mixin.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_mixin.dart index 2f73d8978b5cb..7d04dc0d9baca 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_mixin.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_mixin.dart @@ -36,7 +36,7 @@ class ConvertClassToMixin extends CorrectionProducer { var superclassConstraints = []; var interfaces = []; - var classElement = classDeclaration.declaredElement!; + var classElement = classDeclaration.declaredElement2!; for (var type in classElement.mixins) { if (referencedClasses.contains(type.element2)) { superclassConstraints.add(type); diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart index c8e9c08203bbf..2307386572a5a 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart @@ -96,9 +96,9 @@ class ConvertIntoBlockBody extends CorrectionProducer { ExecutableElement? _getFunctionElement(AstNode? node) { if (node is MethodDeclaration) { - return node.declaredElement; + return node.declaredElement2; } else if (node is ConstructorDeclaration) { - return node.declaredElement; + return node.declaredElement2; } else if (node is FunctionExpression) { return node.declaredElement; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_final_field.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_final_field.dart index 27be65fb6d6a2..d8fef0833a6de 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_final_field.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_final_field.dart @@ -42,7 +42,7 @@ class ConvertIntoFinalField extends CorrectionProducer { // Check that there is no corresponding setter. { - var element = getter.declaredElement; + var element = getter.declaredElement2; if (element == null) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart index 064a8814fd2db..3b01b2f3330d3 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart @@ -109,7 +109,7 @@ class CreateConstructor extends CorrectionProducer { if (grandParent is! EnumDeclaration) { return; } - var targetElement = grandParent.declaredElement; + var targetElement = grandParent.declaredElement2; if (targetElement == null) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_for_final_fields.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_for_final_fields.dart index e750314741616..002f469d7f114 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_for_final_fields.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_for_final_fields.dart @@ -29,7 +29,7 @@ class CreateConstructorForFinalFields extends CorrectionProducer { } var className = classDeclaration.name2.lexeme; - var superType = classDeclaration.declaredElement?.supertype; + var superType = classDeclaration.declaredElement2?.supertype; if (superType == null) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_super.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_super.dart index 5c5eccbbfb656..498da4ccd79ed 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_super.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor_super.dart @@ -19,7 +19,7 @@ class CreateConstructorSuper extends MultiCorrectionProducer { return; } - var targetClassElement = targetClassNode.declaredElement!; + var targetClassElement = targetClassNode.declaredElement2!; var superType = targetClassElement.supertype; if (superType == null) { return; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_method.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_method.dart index b0a0035d1493d..ac13fd91ba71f 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/create_method.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/create_method.dart @@ -65,7 +65,7 @@ class CreateMethod extends CorrectionProducer { } final classDecl = memberDecl.thisOrAncestorOfType(); if (classDecl != null) { - final classElement = classDecl.declaredElement!; + final classElement = classDecl.declaredElement2!; var missingEquals = memberDecl is FieldDeclaration || (memberDecl as MethodDeclaration).name2.lexeme == 'hashCode'; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart index d7c68943a5302..5d80e0edf28d8 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart @@ -28,7 +28,7 @@ class CreateMissingOverrides extends CorrectionProducer { return; } var targetClass = node.parent as ClassDeclaration; - utils.targetClassElement = targetClass.declaredElement; + utils.targetClassElement = targetClass.declaredElement2; var signatures = InheritanceOverrideVerifier.missingOverrides(targetClass).toList(); // sort by name, getters before setters diff --git a/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart b/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart index 43a8826c669fa..1757e44642e84 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart @@ -41,7 +41,7 @@ class EncapsulateField extends CorrectionProducer { } var field = fields.first; var nameToken = field.name2; - var fieldElement = field.declaredElement as FieldElement; + var fieldElement = field.declaredElement2 as FieldElement; // should have a public name var name = nameToken.lexeme; if (Identifier.isPrivateName(name)) { diff --git a/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateful_widget.dart b/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateful_widget.dart index bfca7e7e4da14..5675aa212d596 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateful_widget.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateful_widget.dart @@ -35,7 +35,7 @@ class FlutterConvertToStatefulWidget extends CorrectionProducer { } // Must be a StatelessWidget subclass. - var widgetClassElement = widgetClass.declaredElement!; + var widgetClassElement = widgetClass.declaredElement2!; var superType = widgetClassElement.supertype; if (superType == null || !flutter.isExactlyStatelessWidgetType(superType)) { return; @@ -66,7 +66,7 @@ class FlutterConvertToStatefulWidget extends CorrectionProducer { for (var member in widgetClass.members) { if (member is FieldDeclaration && !member.isStatic) { for (var fieldNode in member.fields.variables) { - var fieldElement = fieldNode.declaredElement as FieldElement; + var fieldElement = fieldNode.declaredElement2 as FieldElement; if (!fieldsAssignedInConstructors.contains(fieldElement)) { nodesToMove.add(member); elementsToMove.add(fieldElement); @@ -84,7 +84,7 @@ class FlutterConvertToStatefulWidget extends CorrectionProducer { } } else if (member is MethodDeclaration && !member.isStatic) { nodesToMove.add(member); - elementsToMove.add(member.declaredElement!); + elementsToMove.add(member.declaredElement2!); } } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateless_widget.dart b/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateless_widget.dart index e6c8d34e34b50..ff11699585528 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateless_widget.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateless_widget.dart @@ -36,7 +36,7 @@ class FlutterConvertToStatelessWidget extends CorrectionProducer { } // Must be a StatefulWidget subclass. - var widgetClassElement = widgetClass.declaredElement!; + var widgetClassElement = widgetClass.declaredElement2!; var superType = widgetClassElement.supertype; if (superType == null || !flutter.isExactlyStatefulWidgetType(superType)) { return; @@ -46,7 +46,7 @@ class FlutterConvertToStatelessWidget extends CorrectionProducer { if (createStateMethod == null) return; var stateClass = _findStateClass(widgetClassElement); - var stateClassElement = stateClass?.declaredElement; + var stateClassElement = stateClass?.declaredElement2; if (stateClass == null || stateClassElement == null || !Identifier.isPrivateName(stateClass.name2.lexeme) || @@ -84,7 +84,7 @@ class FlutterConvertToStatelessWidget extends CorrectionProducer { return; } for (var fieldNode in member.fields.variables) { - var fieldElement = fieldNode.declaredElement as FieldElement; + var fieldElement = fieldNode.declaredElement2 as FieldElement; if (!fieldsAssignedInConstructors.contains(fieldElement)) { nodesToMove.add(member); elementsToMove.add(fieldElement); @@ -106,7 +106,7 @@ class FlutterConvertToStatelessWidget extends CorrectionProducer { } if (!_isDefaultOverride(member)) { nodesToMove.add(member); - elementsToMove.add(member.declaredElement!); + elementsToMove.add(member.declaredElement2!); } } } @@ -391,7 +391,7 @@ class _StateUsageVisitor extends RecursiveAstVisitor { methodDeclaration?.thisOrAncestorOfType(); if (methodDeclaration?.name2.lexeme != 'createState' || - classDeclaration?.declaredElement != widgetClassElement) { + classDeclaration?.declaredElement2 != widgetClassElement) { used = true; } } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart b/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart index 9badb6c7133b6..b5454bb12afe1 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart @@ -356,11 +356,11 @@ class ImportLibrary extends MultiCorrectionProducer { DartType? enclosingThisType(AstNode node) { var parent = node.parent; if (parent is ClassDeclaration) { - return parent.declaredElement?.thisType; + return parent.declaredElement2?.thisType; } else if (parent is ExtensionDeclaration) { return parent.extendedType.type; } else if (parent is MixinDeclaration) { - return parent.declaredElement?.thisType; + return parent.declaredElement2?.thisType; } else { return null; } 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 f85fb9578fca3..1c7b999982529 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 @@ -75,7 +75,7 @@ class JoinVariableDeclaration extends CorrectionProducer { // The declared variable must be the one that is assigned. // There must be no initializer. var declaredVariable = declaredVariables.single; - if (declaredVariable.declaredElement != left.staticElement || + if (declaredVariable.declaredElement2 != left.staticElement || declaredVariable.initializer != null) { return; } @@ -137,7 +137,7 @@ class JoinVariableDeclaration extends CorrectionProducer { } // The assignment should write into the declared variable. - if (assignment.writeElement != declaredVariable.declaredElement) { + if (assignment.writeElement != declaredVariable.declaredElement2) { 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 6c2b0d29a0836..5181b0ae2a5a5 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 @@ -63,7 +63,7 @@ class MakeVariableNullable extends CorrectionProducer { if (statement is VariableDeclarationStatement) { var variableList = statement.variables; for (var declaration in variableList.variables) { - if (declaration.declaredElement == variable) { + if (declaration.declaredElement2 == variable) { return variableList; } } @@ -201,7 +201,7 @@ class MakeVariableNullable extends CorrectionProducer { return; } - var oldType = parent.declaredElement!.type; + var oldType = parent.declaredElement2!.type; if (oldType is! InterfaceTypeImpl) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_abstract.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_abstract.dart index 335777a5ad0d4..9e948406738d9 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/remove_abstract.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_abstract.dart @@ -59,7 +59,7 @@ class RemoveAbstract extends CorrectionProducerWithDiagnostic { continue; } for (var variable in variables) { - if (variable.declaredElement == node.staticElement) { + if (variable.declaredElement2 == node.staticElement) { var abstractKeyword = member.abstractKeyword; if (abstractKeyword != null) { await builder.addDartFileEdit(file, (builder) { diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_unused.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_unused.dart index b63afe572d539..b1ff2f3c6b14f 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/remove_unused.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_unused.dart @@ -42,8 +42,8 @@ class RemoveUnusedElement extends _RemoveUnused { referencedNode is MethodDeclaration || referencedNode is VariableDeclaration) { final element = referencedNode is Declaration - ? referencedNode.declaredElement! - : (referencedNode as NamedCompilationUnitMember).declaredElement!; + ? referencedNode.declaredElement2! + : (referencedNode as NamedCompilationUnitMember).declaredElement2!; final references = _findAllReferences(unit, element); // todo (pq): consider filtering for references that are limited to within the class. if (references.length == 1) { @@ -92,7 +92,7 @@ class RemoveUnusedField extends _RemoveUnused { return; } - final element = declaration.declaredElement; + final element = declaration.declaredElement2; if (element is! FieldElement) { return; } 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 9a5aa0e3d4e6a..5d1b908f4c786 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 @@ -31,7 +31,7 @@ class RemoveUnusedLocalVariable extends CorrectionProducer { return; } - var element = declaration.declaredElement; + var element = declaration.declaredElement2; if (element is! LocalVariableElement) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/rename_method_parameter.dart b/pkg/analysis_server/lib/src/services/correction/dart/rename_method_parameter.dart index 7ba42b80e95b8..c39f1294e3eb1 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/rename_method_parameter.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/rename_method_parameter.dart @@ -34,7 +34,7 @@ class RenameMethodParameter extends CorrectionProducer { if (methodParameters == null) return; var classDeclaration = method.parent as Declaration; - var classElement = classDeclaration.declaredElement; + var classElement = classDeclaration.declaredElement2; if (classElement is! ClassElement) return; var parentMethod = classElement.lookUpInheritedMethod( 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 fdc716360d369..45bbc9945b7cb 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 @@ -107,7 +107,7 @@ class ReplaceConditionalWithIfElse extends CorrectionProducer { var variable = conditional.parent as VariableDeclaration; var variableList = variable.parent as VariableDeclarationList; if (variableList.type == null) { - var type = variable.declaredElement!.type; + var type = variable.declaredElement2!.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/replace_return_type.dart b/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart index 92a695b48ba16..f51ac511f3a77 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart @@ -84,12 +84,12 @@ class ReplaceReturnType extends CorrectionProducer { if (newType != null) { var clazz = method.thisOrAncestorOfType(); if (clazz != null) { - var classElement = clazz.declaredElement!; + var classElement = clazz.declaredElement2!; var overriddenList = InheritanceManager3().getOverridden2( classElement, Name( classElement.library.source.uri, - method.declaredElement!.name, + method.declaredElement2!.name, )); if (overriddenList != null) { 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 0eff5c63fbd5a..8540d43e1080b 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 @@ -52,7 +52,7 @@ class SplitVariableDeclaration extends CorrectionProducer { await builder.addDartFileEdit(file, (builder) { if (variableList.type == null) { - final type = variable.declaredElement!.type; + final type = variable.declaredElement2!.type; if (!type.isDynamic && keyword != null) { if (!builder.canWriteType(type)) { return; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/surround_with.dart b/pkg/analysis_server/lib/src/services/correction/dart/surround_with.dart index cd68581daf4ca..fd88d0d0ed9b8 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/surround_with.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/surround_with.dart @@ -241,7 +241,7 @@ class _SurroundWithSetState extends _SurroundWith { var classDeclaration = node.parent?.thisOrAncestorOfType(); if (classDeclaration != null && - flutter.isState(classDeclaration.declaredElement)) { + flutter.isState(classDeclaration.declaredElement2)) { await builder.addDartFileEdit(file, (builder) { builder.addReplacement(statementsRange, (builder) { builder.write(indentOld); diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/rename_parameter.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/rename_parameter.dart index 568dd96815098..004b5be520372 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/rename_parameter.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/rename_parameter.dart @@ -120,7 +120,7 @@ extension on MethodDeclaration { /// Return the element that this method overrides, or `null` if this method /// doesn't override any inherited member. ExecutableElement? overriddenElement() { - var element = declaredElement; + var element = declaredElement2; if (element != null) { var enclosingElement = element.enclosingElement3; if (enclosingElement is ClassElement) { diff --git a/pkg/analysis_server/lib/src/services/correction/util.dart b/pkg/analysis_server/lib/src/services/correction/util.dart index f2422864a04b5..1512138492160 100644 --- a/pkg/analysis_server/lib/src/services/correction/util.dart +++ b/pkg/analysis_server/lib/src/services/correction/util.dart @@ -255,13 +255,13 @@ AstNode? getEnclosingClassOrUnitMember(AstNode input) { ExecutableElement? getEnclosingExecutableElement(AstNode input) { for (var node in input.withParents) { if (node is FunctionDeclaration) { - return node.declaredElement; + return node.declaredElement2; } if (node is ConstructorDeclaration) { - return node.declaredElement; + return node.declaredElement2; } if (node is MethodDeclaration) { - return node.declaredElement; + return node.declaredElement2; } } return null; diff --git a/pkg/analysis_server/lib/src/services/kythe/kythe_visitors.dart b/pkg/analysis_server/lib/src/services/kythe/kythe_visitors.dart index 1a1b2265144b8..26c3a0662817d 100644 --- a/pkg/analysis_server/lib/src/services/kythe/kythe_visitors.dart +++ b/pkg/analysis_server/lib/src/services/kythe/kythe_visitors.dart @@ -202,7 +202,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { if (refVName != null) { var parentNode = node.parent; if (parentNode is Declaration) { - var parentElement = parentNode.declaredElement; + var parentElement = parentNode.declaredElement2; if (parentNode is TopLevelVariableDeclaration) { _handleVariableDeclarationListAnnotations( parentNode.variables, refVName); @@ -279,7 +279,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitClassDeclaration(ClassDeclaration node) { - return _withEnclosingElement(node.declaredElement!, () { + return _withEnclosingElement(node.declaredElement2!, () { // record/ class node addNodeAndFacts(schema.RECORD_KIND, nodeVName: _enclosingClassVName, @@ -346,7 +346,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitClassTypeAlias(ClassTypeAlias node) { - return _withEnclosingElement(node.declaredElement!, () { + return _withEnclosingElement(node.declaredElement2!, () { // record/ class node addNodeAndFacts(schema.RECORD_KIND, nodeVName: _enclosingClassVName, @@ -460,7 +460,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitConstructorDeclaration(ConstructorDeclaration node) { - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; return _withEnclosingElement(declaredElement, () { // function/ constructor node var constructorVName = addNodeAndFacts(schema.FUNCTION_KIND, @@ -502,7 +502,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitDeclaredIdentifier(DeclaredIdentifier node) { - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; _handleVariableDeclaration(declaredElement, node.name, subKind: schema.LOCAL_SUBKIND, type: declaredElement.type); @@ -513,7 +513,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { void visitEnumConstantDeclaration(EnumConstantDeclaration node) { // constant node var constDeclVName = - addNodeAndFacts(schema.CONSTANT_KIND, element: node.declaredElement); + addNodeAndFacts(schema.CONSTANT_KIND, element: node.declaredElement2); // anchor- defines/binding, defines addAnchorEdgesContainingEdge( @@ -530,7 +530,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitEnumDeclaration(EnumDeclaration node) { - return _withEnclosingElement(node.declaredElement!, () { + return _withEnclosingElement(node.declaredElement2!, () { // record/ enum node addNodeAndFacts(schema.RECORD_KIND, nodeVName: _enclosingClassVName, @@ -591,7 +591,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitFunctionDeclaration(FunctionDeclaration node) { - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; return _withEnclosingElement(declaredElement, () { // function node var functionVName = addNodeAndFacts(schema.FUNCTION_KIND, @@ -743,7 +743,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { @override void visitMethodDeclaration(MethodDeclaration node) { - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; return _withEnclosingElement(declaredElement, () { // function node var methodVName = addNodeAndFacts(schema.FUNCTION_KIND, @@ -918,7 +918,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { _enclosingVName != _enclosingFileVName; // variable - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; _handleVariableDeclaration(declaredElement, node.name2, subKind: isLocal ? schema.LOCAL_SUBKIND : schema.FIELD_SUBKIND, type: declaredElement.type); @@ -1104,9 +1104,9 @@ class KytheDartVisitor extends GeneralizingAstVisitor with OutputUtils { void _handleVariableDeclarationListAnnotations( VariableDeclarationList variableDeclarationList, KytheVName refVName) { for (var varDecl in variableDeclarationList.variables) { - if (varDecl.declaredElement != null) { + if (varDecl.declaredElement2 != null) { var parentVName = - _vNameFromElement(varDecl.declaredElement, schema.VARIABLE_KIND); + _vNameFromElement(varDecl.declaredElement2, schema.VARIABLE_KIND); addEdge(parentVName, schema.ANNOTATED_BY_EDGE, refVName); } else { // The element out of the VarDeclarationList is null diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart index 3bf7ff6cddd57..d62012f39f1e3 100644 --- a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart +++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart @@ -435,15 +435,15 @@ class ExtractMethodRefactoringImpl extends RefactoringImpl return validateCreateFunction(searchEngine, libraryElement, name); } // method of class - ClassElement? classElement; + InterfaceElement? interfaceElement; if (parent is ClassDeclaration) { - classElement = parent.declaredElement!; + interfaceElement = parent.declaredElement2!; } else if (parent is EnumDeclaration) { - classElement = parent.declaredElement!; + interfaceElement = parent.declaredElement2!; } - if (classElement != null) { + if (interfaceElement != null) { return validateCreateMethod(searchEngine, - AnalysisSessionHelper(resolveResult.session), classElement, name); + AnalysisSessionHelper(resolveResult.session), interfaceElement, name); } // OK return Future.value(result); diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart index 2110a70c194e0..d9aab7d2b03b5 100644 --- a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart +++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart @@ -184,7 +184,7 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl // Find the enclosing class. _enclosingClassNode = node?.thisOrAncestorOfType(); - _enclosingClassElement = _enclosingClassNode?.declaredElement; + _enclosingClassElement = _enclosingClassNode?.declaredElement2; // new MyWidget(...) var newExpression = _flutter.identifyNewExpression(node); @@ -372,7 +372,7 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl /// Replace invocations of the [_method] with instantiations of the new /// widget class. void _replaceInvocationsWithInstantiations(DartFileEditBuilder builder) { - var collector = _MethodInvocationsCollector(_method!.declaredElement!); + var collector = _MethodInvocationsCollector(_method!.declaredElement2!); _enclosingClassNode!.accept(collector); for (var invocation in collector.invocations) { List arguments = invocation.argumentList.arguments; diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart index cbd303c4d135c..199c73f3187cf 100644 --- a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart +++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart @@ -22,15 +22,15 @@ import 'package:analyzer/src/dart/analysis/session_helper.dart'; import 'package:analyzer/src/generated/java_core.dart'; import 'package:analyzer/src/generated/source.dart'; -/// Checks if creating a method with the given [name] in [classElement] will +/// Checks if creating a method with the given [name] in [interfaceElement] will /// cause any conflicts. Future validateCreateMethod( SearchEngine searchEngine, AnalysisSessionHelper sessionHelper, - ClassElement classElement, + InterfaceElement interfaceElement, String name) { return _CreateClassMemberValidator( - searchEngine, sessionHelper, classElement, name) + searchEngine, sessionHelper, interfaceElement, name) .validate(); } @@ -127,7 +127,7 @@ class RenameClassMemberRefactoringImpl extends RenameRefactoringImpl { class _BaseClassMemberValidator { final SearchEngine searchEngine; final AnalysisSessionHelper sessionHelper; - final ClassElement elementClass; + final InterfaceElement interfaceElement; final ElementKind elementKind; final String name; @@ -136,21 +136,21 @@ class _BaseClassMemberValidator { _BaseClassMemberValidator( this.searchEngine, this.sessionHelper, - this.elementClass, + this.interfaceElement, this.elementKind, this.name, ); - LibraryElement get library => elementClass.library; + LibraryElement get library => interfaceElement.library; void _checkClassAlreadyDeclares() { // check if there is a member with "newName" in the same ClassElement - for (var newNameMember in getChildren(elementClass, name)) { + for (var newNameMember in getChildren(interfaceElement, name)) { result.addError( format( "{0} '{1}' already declares {2} with name '{3}'.", - capitalize(elementClass.kind.displayName), - elementClass.displayName, + capitalize(interfaceElement.kind.displayName), + interfaceElement.displayName, getElementKindName(newNameMember), name, ), @@ -164,7 +164,7 @@ class _BaseClassMemberValidator { required Set subClasses, }) async { var superClasses = - elementClass.allSupertypes.map((e) => e.element2).toSet(); + interfaceElement.allSupertypes.map((e) => e.element2).toSet(); // check shadowing in the hierarchy var declarations = await searchEngine.searchMemberDeclarations(name); for (var declaration in declarations) { @@ -201,12 +201,12 @@ class _CreateClassMemberValidator extends _BaseClassMemberValidator { _CreateClassMemberValidator( SearchEngine searchEngine, AnalysisSessionHelper sessionHelper, - ClassElement elementClass, + InterfaceElement interfaceElement, String name) : super( searchEngine, sessionHelper, - elementClass, + interfaceElement, ElementKind.METHOD, name, ); @@ -214,13 +214,13 @@ class _CreateClassMemberValidator extends _BaseClassMemberValidator { Future validate() async { _checkClassAlreadyDeclares(); // do chained computations - var subClasses = await searchEngine.searchAllSubtypes(elementClass); + var subClasses = await searchEngine.searchAllSubtypes(interfaceElement); // check shadowing of class names - if (elementClass.name == name) { + if (interfaceElement.name == name) { result.addError( 'Created ${elementKind.displayName} has the same name as the ' - "declaring ${elementClass.kind.displayName} '$name'.", - newLocation_fromElement(elementClass), + "declaring ${interfaceElement.kind.displayName} '$name'.", + newLocation_fromElement(interfaceElement), ); } // check shadowing in the hierarchy @@ -274,7 +274,7 @@ class _RenameClassMemberValidator extends _BaseClassMemberValidator { _checkClassAlreadyDeclares(); // do chained computations await _prepareReferences(); - var subClasses = await searchEngine.searchAllSubtypes(elementClass); + var subClasses = await searchEngine.searchAllSubtypes(interfaceElement); // check shadowing of class names for (var element in elements) { var enclosingElement = element.enclosingElement3; 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 6e8b38e9bbadc..7c2a94b7d7d88 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 @@ -37,7 +37,7 @@ class VisibleRangesComputer extends GeneralizingAstVisitor { var loop = node.parent; if (loop != null) { for (var variable in node.variables.variables) { - _addLocalVariable(loop, variable.declaredElement); + _addLocalVariable(loop, variable.declaredElement2); variable.initializer?.accept(this); } } @@ -47,7 +47,7 @@ class VisibleRangesComputer extends GeneralizingAstVisitor { void visitFunctionDeclaration(FunctionDeclaration node) { var block = node.parent?.parent; if (block is Block) { - var element = node.declaredElement as FunctionElement; + var element = node.declaredElement2 as FunctionElement; _map[element] = range.node(block); } @@ -59,7 +59,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.declaredElement2); variable.initializer?.accept(this); } } diff --git a/pkg/analysis_server/lib/src/status/ast_writer.dart b/pkg/analysis_server/lib/src/status/ast_writer.dart index e9173b7ac6f6a..8b8e20d8bcdff 100644 --- a/pkg/analysis_server/lib/src/status/ast_writer.dart +++ b/pkg/analysis_server/lib/src/status/ast_writer.dart @@ -43,10 +43,10 @@ class AstWriter extends UnifyingAstVisitor with TreeWriter { properties['static element'] = node.staticElement; properties['static type'] = node.staticType; } else if (node is ClassDeclaration) { - properties['declaredElement'] = node.declaredElement; + properties['declaredElement'] = node.declaredElement2; properties['abstract keyword'] = node.abstractKeyword; } else if (node is ClassTypeAlias) { - properties['declaredElement'] = node.declaredElement; + properties['declaredElement'] = node.declaredElement2; properties['abstract keyword'] = node.abstractKeyword; } else if (node is CompilationUnit) { properties['declaredElement'] = node.declaredElement; @@ -55,7 +55,7 @@ class AstWriter extends UnifyingAstVisitor with TreeWriter { } else if (node is ConstructorName) { properties['static element'] = node.staticElement; } else if (node is DeclaredIdentifier) { - properties['element'] = node.declaredElement; + properties['element'] = node.declaredElement2; properties['keyword'] = node.keyword; } else if (node is ExportDirective) { properties['element'] = node.element2; @@ -75,7 +75,7 @@ class AstWriter extends UnifyingAstVisitor with TreeWriter { properties['kind'] = 'unknown kind'; } } else if (node is FunctionDeclaration) { - properties['declaredElement'] = node.declaredElement; + properties['declaredElement'] = node.declaredElement2; properties['external keyword'] = node.externalKeyword; properties['property keyword'] = node.propertyKeyword; } else if (node is FunctionExpressionInvocation) { @@ -94,7 +94,7 @@ class AstWriter extends UnifyingAstVisitor with TreeWriter { } else if (node is LibraryDirective) { properties['element'] = node.element2; } else if (node is MethodDeclaration) { - properties['declaredElement'] = node.declaredElement; + properties['declaredElement'] = node.declaredElement2; properties['external keyword'] = node.externalKeyword; properties['modifier keyword'] = node.modifierKeyword; properties['operator keyword'] = node.operatorKeyword; @@ -126,7 +126,7 @@ class AstWriter extends UnifyingAstVisitor with TreeWriter { } else if (node is VariableDeclarationList) { properties['keyword'] = node.keyword; } else if (node is Declaration) { - properties['declaredElement'] = node.declaredElement; + properties['declaredElement'] = node.declaredElement2; } else if (node is Expression) { properties['static type'] = node.staticType; } else if (node is FunctionBody) { diff --git a/pkg/analysis_server/lib/src/utilities/extensions/ast.dart b/pkg/analysis_server/lib/src/utilities/extensions/ast.dart index f93477cf5d226..703779c0eba1b 100644 --- a/pkg/analysis_server/lib/src/utilities/extensions/ast.dart +++ b/pkg/analysis_server/lib/src/utilities/extensions/ast.dart @@ -24,7 +24,7 @@ extension AstNodeExtensions on AstNode { ExtensionElement? get enclosingExtensionElement { for (final node in withParents) { if (node is ExtensionDeclaration) { - return node.declaredElement; + return node.declaredElement2; } } return null; @@ -46,9 +46,9 @@ extension AstNodeExtensions on AstNode { InterfaceElement? get enclosingInterfaceElement { for (final node in withParents) { if (node is ClassDeclaration) { - return node.declaredElement; + return node.declaredElement2; } else if (node is MixinDeclaration) { - return node.declaredElement; + return node.declaredElement2; } } return null; diff --git a/pkg/analysis_server/test/services/refactoring/legacy/rename_constructor_test.dart b/pkg/analysis_server/test/services/refactoring/legacy/rename_constructor_test.dart index a690c71fa1896..118b635f435e7 100644 --- a/pkg/analysis_server/test/services/refactoring/legacy/rename_constructor_test.dart +++ b/pkg/analysis_server/test/services/refactoring/legacy/rename_constructor_test.dart @@ -568,7 +568,7 @@ enum E { class _RenameConstructorTest extends RenameRefactoringTest { void _createConstructorDeclarationRefactoring(String search) { - var element = findNode.constructor(search).declaredElement; + var element = findNode.constructor(search).declaredElement2; createRenameRefactoringForElement(element); } diff --git a/pkg/analysis_server/tool/bulk_fix/parse_utils.dart b/pkg/analysis_server/tool/bulk_fix/parse_utils.dart index ab93c6fc34e4d..4e63e7262f320 100644 --- a/pkg/analysis_server/tool/bulk_fix/parse_utils.dart +++ b/pkg/analysis_server/tool/bulk_fix/parse_utils.dart @@ -29,7 +29,7 @@ class BulkFixDetails { .getResolvedUnit(file.absolute.path) as ResolvedUnitResult; for (var classDecl in resolvedFile.unit.declarations.whereType()) { - var classElement = classDecl.declaredElement; + var classElement = classDecl.declaredElement2; if (classElement != null && classElement.allSupertypes.any( (element) => element.element2.name == 'CorrectionProducer')) { diff --git a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart index d74f7f77a9738..2e8c73a385233 100644 --- a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart +++ b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart @@ -968,7 +968,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { // There are no completions. data.recordPercentage( 'Methods with type parameters', node.typeParameters != null); - var element = node.declaredElement!; + var element = node.declaredElement2!; if (!element.isStatic && element.enclosingElement3 is ClassElement) { var overriddenMembers = inheritanceManager.getOverridden2( element.enclosingElement3 as ClassElement, @@ -1488,12 +1488,12 @@ class RelevanceDataCollector extends RecursiveAstVisitor { var node = reference; while (node != null) { if (node is MethodDeclaration) { - if (node.declaredElement == function) { + if (node.declaredElement2 == function) { return depth; } depth++; } else if (node is ConstructorDeclaration) { - if (node.declaredElement == function) { + if (node.declaredElement2 == function) { return depth; } depth++; diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md index 3212353d76cf0..430d57f30100e 100644 --- a/pkg/analyzer/CHANGELOG.md +++ b/pkg/analyzer/CHANGELOG.md @@ -1,6 +1,9 @@ ## 4.5.0-dev * Update deprecation message for `FormalParameter.identifier`. * Deprecated `ClassOrMixinDeclaration`, use `ClassDeclaration` and `MixinDeclaration` directly. +* Deprecate `Declaration.declaredElement`, use `declaredElement2` instead. + This is necessary to separate `ClassElement`, `EnumElement`, and `MixinElement`. + And, in the future, augmentations like `ClassAugmentationElement`, etc. ## 4.4.0 * Deprecated `ClassDeclaration.isAbstract`, use `abstractKeyword` instead. diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart index 9bf0421c99aed..ad89081051926 100644 --- a/pkg/analyzer/lib/dart/ast/ast.dart +++ b/pkg/analyzer/lib/dart/ast/ast.dart @@ -863,7 +863,7 @@ abstract class ClassAugmentationDeclaration Token get augmentKeyword; @override - ClassAugmentationElement? get declaredElement; + ClassAugmentationElement? get declaredElement2; } /// The declaration of a class. @@ -882,9 +882,13 @@ abstract class ClassDeclaration ClassOrAugmentationDeclaration, // ignore: deprecated_member_use_from_same_package ClassOrMixinDeclaration { + @Deprecated('Use declaredElement2 instead') @override ClassElement? get declaredElement; + @override + ClassElement? get declaredElement2; + /// Returns the implements clause for the class/mixin, or `null` if the /// class/mixin does not implement any interfaces. @override @@ -947,6 +951,9 @@ abstract class ClassOrAugmentationDeclaration /// Returns the token representing the 'class' keyword. Token get classKeyword; + @override + ClassOrAugmentationElement? get declaredElement2; + /// Returns the `extends` clause for this class, or `null` if the class /// does not extend any other class. /// @@ -1031,9 +1038,13 @@ abstract class ClassTypeAlias implements TypeAlias { /// defining an abstract class. Token? get abstractKeyword; + @Deprecated('Use declaredElement2 instead') @override ClassElement? get declaredElement; + @override + ClassElement? get declaredElement2; + /// Return the token for the '=' separating the name from the definition. Token get equals; @@ -1387,9 +1398,13 @@ abstract class ConstructorDeclaration implements ClassMember { /// not a const constructor. Token? get constKeyword; + @Deprecated('Use declaredElement2 instead') @override ConstructorElement? get declaredElement; + @override + ConstructorElement? get declaredElement2; + /// Return the token for the 'external' keyword to the given [token]. Token? get externalKeyword; @@ -1567,7 +1582,13 @@ abstract class Declaration implements AnnotatedNode { /// Return the element associated with this declaration, or `null` if either /// this node corresponds to a list of declarations or if the AST structure /// has not been resolved. + @Deprecated('Use declaredElement2 instead') Element? get declaredElement; + + /// Return the element associated with this declaration, or `null` if either + /// this node corresponds to a list of declarations or if the AST structure + /// has not been resolved. + Element? get declaredElement2; } /// The declaration of a single identifier. @@ -1577,9 +1598,13 @@ abstract class Declaration implements AnnotatedNode { /// /// Clients may not extend, implement or mix-in this class. abstract class DeclaredIdentifier implements Declaration { + @Deprecated('Use declaredElement2 instead') @override LocalVariableElement? get declaredElement; + @override + LocalVariableElement? get declaredElement2; + /// Return the name of the variable being declared. @Deprecated('Use name instead') SimpleIdentifier get identifier; @@ -1793,9 +1818,13 @@ abstract class EnumDeclaration implements NamedCompilationUnitMember { /// Return the enumeration constants being declared. NodeList get constants; + @Deprecated('Use declaredElement2 instead') @override ClassElement? get declaredElement; + @override + EnumElement? get declaredElement2; + /// Return the 'enum' keyword. Token get enumKeyword; @@ -1966,9 +1995,13 @@ abstract class ExtendsClause implements AstNode { /// /// Clients may not extend, implement or mix-in this class. abstract class ExtensionDeclaration implements CompilationUnitMember { + @Deprecated('Use declaredElement2 instead') @override ExtensionElement? get declaredElement; + @override + ExtensionElement? get declaredElement2; + /// Return the type that is being extended. TypeAnnotation get extendedType; @@ -2508,9 +2541,13 @@ abstract class FunctionBody implements AstNode { /// /// Clients may not extend, implement or mix-in this class. abstract class FunctionDeclaration implements NamedCompilationUnitMember { + @Deprecated('Use declaredElement2 instead') @override ExecutableElement? get declaredElement; + @override + ExecutableElement? get declaredElement2; + /// Return the token representing the 'external' keyword, or `null` if this is /// not an external function. Token? get externalKeyword; @@ -2627,9 +2664,13 @@ abstract class FunctionReference /// /// Clients may not extend, implement or mix-in this class. abstract class FunctionTypeAlias implements TypeAlias { + @Deprecated('Use declaredElement2 instead') @override TypeAliasElement? get declaredElement; + @override + TypeAliasElement? get declaredElement2; + /// Return the parameters associated with the function type. FormalParameterList get parameters; @@ -3424,9 +3465,13 @@ abstract class MethodDeclaration implements ClassMember { /// Return the body of the method. FunctionBody get body; + @Deprecated('Use declaredElement2 instead') @override ExecutableElement? get declaredElement; + @override + ExecutableElement? get declaredElement2; + /// Return the token for the 'external' keyword, or `null` if the constructor /// is not external. Token? get externalKeyword; @@ -3552,7 +3597,7 @@ abstract class MixinAugmentationDeclaration Token get augmentKeyword; @override - MixinAugmentationElement? get declaredElement; + MixinAugmentationElement? get declaredElement2; } /// The declaration of a mixin. @@ -3567,13 +3612,13 @@ abstract class MixinDeclaration MixinOrAugmentationDeclaration, // ignore: deprecated_member_use_from_same_package ClassOrMixinDeclaration { - // TODO(scheglov) Uncomment when removed [ClassOrMixinDeclaration]. - // @override - // MixinElement get declaredElement; - + @Deprecated('Use declaredElement2 instead') @override ClassElement? get declaredElement; + @override + MixinElement? get declaredElement2; + /// Returns the implements clause for the class/mixin, or `null` if the /// class/mixin does not implement any interfaces. @override @@ -3604,14 +3649,13 @@ abstract class MixinDeclaration @experimental abstract class MixinOrAugmentationDeclaration implements NamedCompilationUnitMember { + @override + MixinOrAugmentationElement? get declaredElement2; + /// Returns the `implements` clause for the mixin, or `null` if the mixin /// does not implement any interfaces. ImplementsClause? get implementsClause; - // @override - // TODO(scheglov) Uncomment when removed [ClassOrMixinDeclaration]. - // MixinOrAugmentationElement get declaredElement; - /// Returns the left curly bracket. Token get leftBracket; @@ -4827,9 +4871,13 @@ abstract class TypeParameter implements Declaration { /// explicit upper bound. TypeAnnotation? get bound; + @Deprecated('Use declaredElement2 instead') @override TypeParameterElement? get declaredElement; + @override + TypeParameterElement? get declaredElement2; + /// Return the token representing the 'extends' keyword, or `null` if there is /// no explicit upper bound. Token? get extendsKeyword; @@ -4906,9 +4954,13 @@ abstract class UriBasedDirective implements Directive { // Consider changing the class hierarchy so that [VariableDeclaration] does not // extend [Declaration]. abstract class VariableDeclaration implements Declaration { + @Deprecated('Use declaredElement2 instead') @override VariableElement? get declaredElement; + @override + VariableElement? get declaredElement2; + /// Return the equal sign separating the variable name from the initial value, /// or `null` if the initial value was not specified. Token? get equals; diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart index b83db32c0d972..fd50ffd725305 100644 --- a/pkg/analyzer/lib/src/dart/analysis/index.dart +++ b/pkg/analyzer/lib/src/dart/analysis/index.dart @@ -446,7 +446,7 @@ class _IndexContributor extends GeneralizingAstVisitor { _IndexContributor(this.assembler); - void recordIsAncestorOf(ClassElement descendant) { + void recordIsAncestorOf(InterfaceElement descendant) { _recordIsAncestorOf(descendant, descendant, false, []); } @@ -561,7 +561,7 @@ class _IndexContributor extends GeneralizingAstVisitor { @override void visitClassDeclaration(ClassDeclaration node) { _addSubtypeForClassDeclaration(node); - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; if (node.extendsClause == null) { final objectElement = declaredElement.supertype?.element2; recordRelationOffset(objectElement, IndexRelationKind.IS_EXTENDED_BY, @@ -574,7 +574,7 @@ class _IndexContributor extends GeneralizingAstVisitor { @override void visitClassTypeAlias(ClassTypeAlias node) { _addSubtypeForClassTypeAlis(node); - recordIsAncestorOf(node.declaredElement!); + recordIsAncestorOf(node.declaredElement2!); super.visitClassTypeAlias(node); } @@ -681,7 +681,7 @@ class _IndexContributor extends GeneralizingAstVisitor { memberNodes: node.members, ); - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; recordIsAncestorOf(declaredElement); super.visitEnumDeclaration(node); } @@ -770,7 +770,7 @@ class _IndexContributor extends GeneralizingAstVisitor { @override void visitMixinDeclaration(MixinDeclaration node) { _addSubtypeForMixinDeclaration(node); - recordIsAncestorOf(node.declaredElement!); + recordIsAncestorOf(node.declaredElement2!); super.visitMixinDeclaration(node); } diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart index 5c761d8a8e7f4..36e3ba04e0f8e 100644 --- a/pkg/analyzer/lib/src/dart/ast/ast.dart +++ b/pkg/analyzer/lib/src/dart/ast/ast.dart @@ -1714,7 +1714,7 @@ class ClassDeclarationImpl extends ClassOrMixinDeclarationImpl NativeClauseImpl? _nativeClause; @override - ClassElement? declaredElement; + ClassElement? declaredElement2; /// Initialize a newly created class declaration. Either or both of the /// [comment] and [metadata] can be `null` if the class does not have the @@ -1745,6 +1745,10 @@ class ClassDeclarationImpl extends ClassOrMixinDeclarationImpl _becomeParentOf(_withClause); } + @Deprecated('Use declaredElement2 instead') + @override + ClassElement? get declaredElement => declaredElement2; + @override ExtendsClauseImpl? get extendsClause => _extendsClause; @@ -1978,7 +1982,7 @@ class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias { ImplementsClauseImpl? _implementsClause; @override - ClassElement? declaredElement; + ClassElement? declaredElement2; /// Initialize a newly created class type alias. Either or both of the /// [comment] and [metadata] can be `null` if the class type alias does not @@ -2010,6 +2014,10 @@ class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias { _becomeParentOf(_implementsClause); } + @Deprecated('Use declaredElement2 instead') + @override + ClassElement? get declaredElement => declaredElement2; + @override Token get firstTokenAfterCommentAndMetadata { return abstractKeyword ?? macroKeyword ?? augmentKeyword ?? typedefKeyword; @@ -2784,7 +2792,7 @@ class ConstructorDeclarationImpl extends ClassMemberImpl /// structure has not been resolved or if this constructor could not be /// resolved. @override - ConstructorElement? declaredElement; + ConstructorElement? declaredElement2; /// Initialize a newly created constructor declaration. The [externalKeyword] /// can be `null` if the constructor is not external. Either or both of the @@ -2833,6 +2841,10 @@ class ConstructorDeclarationImpl extends ClassMemberImpl _body = _becomeParentOf(functionBody as FunctionBodyImpl); } + @Deprecated('Use declaredElement2 instead') + @override + ConstructorElement? get declaredElement => declaredElement2; + @override Token get endToken { return _body.endToken; @@ -3268,7 +3280,7 @@ class DeclaredIdentifierImpl extends DeclarationImpl SimpleIdentifierImpl _identifier; @override - LocalVariableElement? declaredElement; + LocalVariableElement? declaredElement2; /// Initialize a newly created formal parameter. Either or both of the /// [comment] and [metadata] can be `null` if the declaration does not have @@ -3286,6 +3298,10 @@ class DeclaredIdentifierImpl extends DeclarationImpl _becomeParentOf(_identifier); } + @Deprecated('Use declaredElement2 instead') + @override + LocalVariableElement? get declaredElement => declaredElement2; + @override Token get endToken => _identifier.endToken; @@ -3801,7 +3817,7 @@ class EnumConstantDeclarationImpl extends DeclarationImpl SimpleIdentifierImpl _name; @override - FieldElement? declaredElement; + FieldElement? declaredElement2; @override final EnumConstantArgumentsImpl? arguments; @@ -3822,6 +3838,10 @@ class EnumConstantDeclarationImpl extends DeclarationImpl _becomeParentOf(arguments); } + @Deprecated('Use declaredElement2 instead') + @override + FieldElement? get declaredElement => declaredElement2; + @override Token get endToken => (arguments ?? _name).endToken; @@ -3902,7 +3922,7 @@ class EnumDeclarationImpl extends NamedCompilationUnitMemberImpl Token rightBracket; @override - ClassElement? declaredElement; + EnumElement? declaredElement2; /// Initialize a newly created enumeration declaration. Either or both of the /// [comment] and [metadata] can be `null` if the declaration does not have @@ -3934,6 +3954,10 @@ class EnumDeclarationImpl extends NamedCompilationUnitMemberImpl @override NodeListImpl get constants => _constants; + @Deprecated('Use declaredElement2 instead') + @override + ClassElement? get declaredElement => declaredElement2 as ClassElement?; + @override Token get endToken => rightBracket; @@ -4427,7 +4451,8 @@ class ExtensionDeclarationImpl extends CompilationUnitMemberImpl @override Token rightBracket; - ExtensionElement? _declaredElement; + @override + ExtensionElement? declaredElement2; ExtensionDeclarationImpl({ required super.comment, @@ -4454,13 +4479,9 @@ class ExtensionDeclarationImpl extends CompilationUnitMemberImpl _members._initialize(this, members); } + @Deprecated('Use declaredElement2 instead') @override - ExtensionElement? get declaredElement => _declaredElement; - - /// Set the element declared by this declaration to the given [element]. - set declaredElement(ExtensionElement? element) { - _declaredElement = element; - } + ExtensionElement? get declaredElement => declaredElement2; @override Token get endToken => rightBracket; @@ -4687,6 +4708,9 @@ class FieldDeclarationImpl extends ClassMemberImpl implements FieldDeclaration { @override Element? get declaredElement => null; + @override + Element? get declaredElement2 => null; + @override Token get endToken => semicolon; @@ -5519,7 +5543,7 @@ class FunctionDeclarationImpl extends NamedCompilationUnitMemberImpl FunctionExpressionImpl _functionExpression; @override - ExecutableElement? declaredElement; + ExecutableElement? declaredElement2; /// Initialize a newly created function declaration. Either or both of the /// [comment] and [metadata] can be `null` if the function does not have the @@ -5542,6 +5566,10 @@ class FunctionDeclarationImpl extends NamedCompilationUnitMemberImpl _becomeParentOf(_functionExpression); } + @Deprecated('Use declaredElement2 instead') + @override + ExecutableElement? get declaredElement => declaredElement2; + @override Token get endToken => _functionExpression.endToken; @@ -5881,7 +5909,7 @@ class FunctionTypeAliasImpl extends TypeAliasImpl implements FunctionTypeAlias { FormalParameterListImpl _parameters; @override - TypeAliasElement? declaredElement; + TypeAliasElement? declaredElement2; /// Initialize a newly created function type alias. Either or both of the /// [comment] and [metadata] can be `null` if the function does not have the @@ -5905,6 +5933,10 @@ class FunctionTypeAliasImpl extends TypeAliasImpl implements FunctionTypeAlias { _becomeParentOf(_parameters); } + @Deprecated('Use declaredElement2 instead') + @override + TypeAliasElement? get declaredElement => declaredElement2; + @override FormalParameterListImpl get parameters => _parameters; @@ -6199,7 +6231,7 @@ class GenericTypeAliasImpl extends TypeAliasImpl implements GenericTypeAlias { Token equals; @override - Element? declaredElement; + Element? declaredElement2; /// Returns a newly created generic type alias. Either or both of the /// [comment] and [metadata] can be `null` if the variable list does not have @@ -6220,6 +6252,10 @@ class GenericTypeAliasImpl extends TypeAliasImpl implements GenericTypeAlias { _becomeParentOf(_type); } + @Deprecated('Use declaredElement2 instead') + @override + Element? get declaredElement => declaredElement2; + /// The type of function being defined by the alias. /// /// If the non-function type aliases feature is enabled, a type alias may have @@ -7956,7 +7992,7 @@ class MethodDeclarationImpl extends ClassMemberImpl /// a [PropertyAccessorElement] if this represents the declaration of either a /// getter or a setter. @override - ExecutableElement? declaredElement; + ExecutableElement? declaredElement2; /// Initialize a newly created method declaration. Either or both of the /// [comment] and [metadata] can be `null` if the declaration does not have @@ -7998,6 +8034,10 @@ class MethodDeclarationImpl extends ClassMemberImpl _body = _becomeParentOf(functionBody as FunctionBodyImpl); } + @Deprecated('Use declaredElement2 instead') + @override + ExecutableElement? get declaredElement => declaredElement2; + @override Token get endToken => _body.endToken; @@ -8263,7 +8303,7 @@ class MixinDeclarationImpl extends ClassOrMixinDeclarationImpl OnClauseImpl? _onClause; @override - ClassElement? declaredElement; + MixinElement? declaredElement2; /// Initialize a newly created mixin declaration. Either or both of the /// [comment] and [metadata] can be `null` if the mixin does not have the @@ -8288,6 +8328,10 @@ class MixinDeclarationImpl extends ClassOrMixinDeclarationImpl _becomeParentOf(_onClause); } + @Deprecated('Use declaredElement2 instead') + @override + ClassElement? get declaredElement => declaredElement2 as ClassElement?; + @override Token get firstTokenAfterCommentAndMetadata { return mixinKeyword; @@ -11334,6 +11378,9 @@ class TopLevelVariableDeclarationImpl extends CompilationUnitMemberImpl @override Element? get declaredElement => null; + @override + Element? get declaredElement2 => null; + @override Token get endToken => semicolon; @@ -11665,7 +11712,7 @@ class TypeParameterImpl extends DeclarationImpl implements TypeParameter { TypeAnnotationImpl? _bound; @override - TypeParameterElement? declaredElement; + TypeParameterElement? declaredElement2; /// Initialize a newly created type parameter. Either or both of the [comment] /// and [metadata] can be `null` if the parameter does not have the @@ -11691,6 +11738,10 @@ class TypeParameterImpl extends DeclarationImpl implements TypeParameter { _bound = _becomeParentOf(type as TypeAnnotationImpl?); } + @Deprecated('Use declaredElement2 instead') + @override + TypeParameterElement? get declaredElement => declaredElement2; + @override Token get endToken { if (_bound == null) { @@ -11884,7 +11935,7 @@ class VariableDeclarationImpl extends DeclarationImpl SimpleIdentifierImpl _name; @override - VariableElement? declaredElement; + VariableElement? declaredElement2; /// The equal sign separating the variable name from the initial value, or /// `null` if the initial value was not specified. @@ -11914,6 +11965,10 @@ class VariableDeclarationImpl extends DeclarationImpl _becomeParentOf(_initializer); } + @Deprecated('Use declaredElement2 instead') + @override + VariableElement? get declaredElement => declaredElement2; + /// This overridden implementation of [documentationComment] looks in the /// grandparent node for Dartdoc comments if no documentation is specifically /// available on the node. diff --git a/pkg/analyzer/lib/src/dart/ast/element_locator.dart b/pkg/analyzer/lib/src/dart/ast/element_locator.dart index 6e910aa9da688..83dc795590959 100644 --- a/pkg/analyzer/lib/src/dart/ast/element_locator.dart +++ b/pkg/analyzer/lib/src/dart/ast/element_locator.dart @@ -38,7 +38,7 @@ class _ElementMapper extends GeneralizingAstVisitor { @override Element? visitClassDeclaration(ClassDeclaration node) { - return node.declaredElement; + return node.declaredElement2; } @override @@ -48,7 +48,7 @@ class _ElementMapper extends GeneralizingAstVisitor { @override Element? visitConstructorDeclaration(ConstructorDeclaration node) { - return node.declaredElement; + return node.declaredElement2; } @override @@ -75,17 +75,17 @@ class _ElementMapper extends GeneralizingAstVisitor { @override Element? visitFunctionDeclaration(FunctionDeclaration node) { - return node.declaredElement; + return node.declaredElement2; } @override Element? visitFunctionTypeAlias(FunctionTypeAlias node) { - return node.declaredElement; + return node.declaredElement2; } @override Element? visitGenericTypeAlias(GenericTypeAlias node) { - return node.declaredElement; + return node.declaredElement2; } @override @@ -103,14 +103,14 @@ class _ElementMapper extends GeneralizingAstVisitor { if (identical(returnType, node)) { var name = parent.name2; if (name != null) { - return parent.declaredElement; + return parent.declaredElement2; } var element = node.staticElement; if (element is ClassElement) { return element.unnamedConstructor; } } else if (parent.name2 == node.endToken) { - return parent.declaredElement; + return parent.declaredElement2; } } else if (parent is LibraryIdentifier) { var grandParent = parent.parent; @@ -148,7 +148,7 @@ class _ElementMapper extends GeneralizingAstVisitor { @override Element? visitMethodDeclaration(MethodDeclaration node) { - return node.declaredElement; + return node.declaredElement2; } @override @@ -194,11 +194,11 @@ class _ElementMapper extends GeneralizingAstVisitor { @override Element? visitTypeParameter(TypeParameter node) { - return node.declaredElement; + return node.declaredElement2; } @override Element? visitVariableDeclaration(VariableDeclaration node) { - return node.declaredElement; + return node.declaredElement2; } } diff --git a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart index df14528133cb8..0119969c757ed 100644 --- a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart +++ b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart @@ -132,7 +132,7 @@ class ConstantVerifier extends RecursiveAstVisitor { _validateConstantArguments(argumentList); } - var element = node.declaredElement as ConstFieldElementImpl; + var element = node.declaredElement2 as ConstFieldElementImpl; var result = element.evaluationResult; if (result != null) { _reportErrors(result.errors, null); @@ -290,7 +290,7 @@ class ConstantVerifier extends RecursiveAstVisitor { super.visitVariableDeclaration(node); var initializer = node.initializer; if (initializer != null && (node.isConst || node.isFinal)) { - var element = node.declaredElement as VariableElementImpl; + var element = node.declaredElement2 as VariableElementImpl; var result = element.evaluationResult; if (result == null) { // Variables marked "const" should have had their values computed by @@ -1090,7 +1090,7 @@ extension on Expression { !declarationListParent.isStatic) { var container = declarationListParent.parent; if (container is ClassDeclaration) { - var enclosingClass = container.declaredElement; + var enclosingClass = container.declaredElement2; if (enclosingClass != null) { // A field initializer of a class with at least one generative // const constructor does not constitute a constant context, but diff --git a/pkg/analyzer/lib/src/dart/constant/utilities.dart b/pkg/analyzer/lib/src/dart/constant/utilities.dart index 38b14dc918ff0..3bd96a5f394f0 100644 --- a/pkg/analyzer/lib/src/dart/constant/utilities.dart +++ b/pkg/analyzer/lib/src/dart/constant/utilities.dart @@ -106,7 +106,7 @@ class ConstantFinder extends RecursiveAstVisitor { @override void visitClassDeclaration(ClassDeclaration node) { bool prevTreatFinalInstanceVarAsConst = treatFinalInstanceVarAsConst; - if (node.declaredElement!.constructors + if (node.declaredElement2!.constructors .any((ConstructorElement e) => e.isConst)) { // Instance vars marked "final" need to be included in the dependency // graph, since constant constructors implicitly use the values in their @@ -124,7 +124,7 @@ class ConstantFinder extends RecursiveAstVisitor { void visitConstructorDeclaration(ConstructorDeclaration node) { super.visitConstructorDeclaration(node); if (node.constKeyword != null) { - var element = node.declaredElement; + var element = node.declaredElement2; if (element != null) { constantsToCompute.add(element); constantsToCompute.addAll(element.parameters); @@ -145,7 +145,7 @@ class ConstantFinder extends RecursiveAstVisitor { void visitEnumConstantDeclaration(EnumConstantDeclaration node) { super.visitEnumConstantDeclaration(node); - var element = node.declaredElement as ConstFieldElementImpl; + var element = node.declaredElement2 as ConstFieldElementImpl; constantsToCompute.add(element); var constantInitializer = element.constantInitializer!; @@ -156,7 +156,7 @@ class ConstantFinder extends RecursiveAstVisitor { void visitVariableDeclaration(VariableDeclaration node) { super.visitVariableDeclaration(node); var initializer = node.initializer; - var element = node.declaredElement!; + var element = node.declaredElement2!; if (initializer != null && (node.isConst || treatFinalInstanceVarAsConst && diff --git a/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart b/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart index 5a30ab4f6acdd..cc2458b4004b0 100644 --- a/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart +++ b/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart @@ -11,7 +11,7 @@ import 'package:analyzer/src/dart/element/type_system.dart'; class ClassHierarchy { final Map _map = {}; - List errors(ClassElement element) { + List errors(InterfaceElement element) { return _getHierarchy(element).errors; } diff --git a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart index 8819dd64108bb..6ade8c9966e12 100644 --- a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart +++ b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart @@ -299,7 +299,7 @@ class InheritanceManager3 { /// Return all members of mixins, superclasses, and interfaces that a member /// with the given [name], defined in the [element], would override; or `null` /// if no members would be overridden. - List? getOverridden2(ClassElement element, Name name) { + List? getOverridden2(InterfaceElement element, Name name) { var interface = getInterface(element); return interface._overridden[name]; } diff --git a/pkg/analyzer/lib/src/dart/element/scope.dart b/pkg/analyzer/lib/src/dart/element/scope.dart index 7e1f1e7174b33..2c89119001526 100644 --- a/pkg/analyzer/lib/src/dart/element/scope.dart +++ b/pkg/analyzer/lib/src/dart/element/scope.dart @@ -8,14 +8,6 @@ import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/summary2/combinator.dart'; import 'package:analyzer/src/summary2/export.dart'; -/// The scope defined by a class. -class ClassScope extends EnclosedScope { - ClassScope(super.parent, ClassElement element) { - element.accessors.forEach(_addPropertyAccessor); - element.methods.forEach(_addGetter); - } -} - /// The scope for the initializers in a constructor. class ConstructorInitializerScope extends EnclosedScope { ConstructorInitializerScope(super.parent, ConstructorElement element) { @@ -107,6 +99,14 @@ class ImportedElement { }); } +/// The scope defined by an interface element. +class InterfaceScope extends EnclosedScope { + InterfaceScope(super.parent, InterfaceElement element) { + element.accessors.forEach(_addPropertyAccessor); + element.methods.forEach(_addGetter); + } +} + class LibraryOrAugmentationScope extends EnclosedScope { final LibraryOrAugmentationElementImpl _container; final List extensions = []; diff --git a/pkg/analyzer/lib/src/dart/micro/utils.dart b/pkg/analyzer/lib/src/dart/micro/utils.dart index 48c3c7804945e..32e6541698ae2 100644 --- a/pkg/analyzer/lib/src/dart/micro/utils.dart +++ b/pkg/analyzer/lib/src/dart/micro/utils.dart @@ -277,7 +277,7 @@ class ReferencesCollector extends GeneralizingAstVisitor { @override visitConstructorDeclaration(ConstructorDeclaration node) { - var e = node.declaredElement; + var e = node.declaredElement2; if (e == element) { if (e!.name.isEmpty) { references.add( 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 43ad2d4d69238..7c98bf5ad0254 100644 --- a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart +++ b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart @@ -280,7 +280,7 @@ class FlowAnalysisHelper { var variables = node.variables; for (var i = 0; i < variables.length; ++i) { var variable = variables[i]; - flow!.declare(variable.declaredElement as PromotableElement, + flow!.declare(variable.declaredElement2 as PromotableElement, variable.initializer != null); } } @@ -627,7 +627,7 @@ class _AssignedVariablesVisitor extends RecursiveAstVisitor { grandParent is FieldDeclaration) { throw StateError('Should not visit top level declarations'); } - var declaredElement = node.declaredElement as PromotableElement; + var declaredElement = node.declaredElement2 as PromotableElement; assignedVariables.declare(declaredElement); if (declaredElement.isLate && node.initializer != null) { assignedVariables.beginNode(); @@ -678,7 +678,7 @@ class _AssignedVariablesVisitor extends RecursiveAstVisitor { assignedVariables.write(element); } } else if (forLoopParts is ForEachPartsWithDeclaration) { - var variable = forLoopParts.loopVariable.declaredElement!; + var variable = forLoopParts.loopVariable.declaredElement2!; assignedVariables.declare(variable); } else { throw StateError('Unrecognized for loop parts'); diff --git a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart index 4784ae4511c55..3264c287ac4c9 100644 --- a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart +++ b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart @@ -132,12 +132,13 @@ class ForResolver { elementType != null && loopVariable.type == null) { var loopVariableElement = - loopVariable.declaredElement as LocalVariableElementImpl; + loopVariable.declaredElement2 as LocalVariableElementImpl; loopVariableElement.type = elementType; } if (loopVariable != null) { - _resolver.flowAnalysis.flow?.declare(loopVariable.declaredElement!, true); + _resolver.flowAnalysis.flow + ?.declare(loopVariable.declaredElement2!, true); } _resolver.flowAnalysis.flow?.forEach_bodyBegin(node); diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart index cde77546f02a6..2d094c7274374 100644 --- a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart +++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart @@ -162,7 +162,7 @@ class FunctionExpressionResolver { } return type.instantiate(typeParameters.map((typeParameter) { - return typeParameter.declaredElement!.instantiate( + return typeParameter.declaredElement2!.instantiate( nullabilitySuffix: _resolver.noneOrStarSuffix, ); }).toList()); diff --git a/pkg/analyzer/lib/src/dart/resolver/legacy_type_asserter.dart b/pkg/analyzer/lib/src/dart/resolver/legacy_type_asserter.dart index 580be8a2c707d..3e197def08739 100644 --- a/pkg/analyzer/lib/src/dart/resolver/legacy_type_asserter.dart +++ b/pkg/analyzer/lib/src/dart/resolver/legacy_type_asserter.dart @@ -50,7 +50,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor { @override void visitClassMember(ClassMember node) { - final element = node.declaredElement; + final element = node.declaredElement2; if (element is ExecutableElement) { _assertLegacyType(element.type); } @@ -66,7 +66,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor { @override void visitDeclaredIdentifier(DeclaredIdentifier node) { - _assertLegacyType(node.declaredElement?.type); + _assertLegacyType(node.declaredElement2?.type); super.visitDeclaredIdentifier(node); } @@ -85,7 +85,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor { @override void visitFunctionDeclaration(FunctionDeclaration node) { - _assertLegacyType(node.declaredElement?.type); + _assertLegacyType(node.declaredElement2?.type); super.visitFunctionDeclaration(node); } @@ -110,7 +110,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor { @override void visitVariableDeclaration(VariableDeclaration node) { - _assertLegacyType(node.declaredElement?.type); + _assertLegacyType(node.declaredElement2?.type); super.visitVariableDeclaration(node); } diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart index 2d6fa61724fb8..ee1c4b7e37850 100644 --- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart +++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart @@ -240,7 +240,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitClassDeclaration(covariant ClassDeclarationImpl node) { ClassElementImpl element = _elementWalker!.getClass(); - node.declaredElement = element; + node.declaredElement2 = element; _namedTypeResolver.enclosingClass = element; _setOrCreateMetadataElements(element, node.metadata); @@ -275,7 +275,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitClassTypeAlias(covariant ClassTypeAliasImpl node) { ClassElementImpl element = _elementWalker!.getClass(); - node.declaredElement = element; + node.declaredElement2 = element; _namedTypeResolver.enclosingClass = element; _setOrCreateMetadataElements(element, node.metadata); @@ -302,8 +302,8 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitConstructorDeclaration(ConstructorDeclaration node) { ConstructorElementImpl element = _elementWalker!.getConstructor(); - (node as ConstructorDeclarationImpl).declaredElement = element; - node.declaredElement = element; + (node as ConstructorDeclarationImpl).declaredElement2 = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -333,7 +333,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { var nameToken = node.name; var element = LocalVariableElementImpl(nameToken.lexeme, nameToken.offset); _elementHolder.enclose(element); - node.declaredElement = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -408,7 +408,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { void visitEnumConstantDeclaration( covariant EnumConstantDeclarationImpl node) { var element = _elementWalker!.getVariable() as ConstFieldElementImpl; - node.declaredElement = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -425,7 +425,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitEnumDeclaration(covariant EnumDeclarationImpl node) { EnumElementImpl element = _elementWalker!.getEnum(); - node.declaredElement = element; + node.declaredElement2 = element; _namedTypeResolver.enclosingClass = element; _setOrCreateMetadataElements(element, node.metadata); @@ -463,8 +463,8 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitExtensionDeclaration(ExtensionDeclaration node) { var element = _elementWalker!.getExtension(); - (node as ExtensionDeclarationImpl).declaredElement = element; - node.declaredElement = element; + (node as ExtensionDeclarationImpl).declaredElement2 = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -546,9 +546,9 @@ class ResolutionVisitor extends RecursiveAstVisitor { element = node.isGetter || node.isSetter ? _elementWalker!.getAccessor() : _elementWalker!.getFunction(); - node.declaredElement = element; + node.declaredElement2 = element; } else { - element = node.declaredElement as ExecutableElementImpl; + element = node.declaredElement2 as ExecutableElementImpl; _setCodeRange(element, node); setElementDocumentationComment(element, node); @@ -646,7 +646,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitFunctionTypeAlias(covariant FunctionTypeAliasImpl node) { var element = _elementWalker!.getTypedef(); - node.declaredElement = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -760,7 +760,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitGenericTypeAlias(covariant GenericTypeAliasImpl node) { var element = _elementWalker!.getTypedef(); - node.declaredElement = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -862,7 +862,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { ExecutableElementImpl element = node.isGetter || node.isSetter ? _elementWalker!.getAccessor() : _elementWalker!.getFunction(); - node.declaredElement = element; + node.declaredElement2 = element; _setOrCreateMetadataElements(element, node.metadata); @@ -897,7 +897,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitMixinDeclaration(covariant MixinDeclarationImpl node) { var element = _elementWalker!.getMixin(); - node.declaredElement = element; + node.declaredElement2 = element as MixinElementImpl; _setOrCreateMetadataElements(element, node.metadata); @@ -1089,7 +1089,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { @override void visitTypeParameter(TypeParameter node) { - var element = node.declaredElement as TypeParameterElementImpl; + var element = node.declaredElement2 as TypeParameterElementImpl; _setOrCreateMetadataElements(element, node.metadata); @@ -1109,9 +1109,9 @@ class ResolutionVisitor extends RecursiveAstVisitor { VariableElementImpl element; if (_elementWalker != null) { element = _elementWalker!.getVariable(); - node.declaredElement = element; + node.declaredElement2 = element; } else { - var localElement = node.declaredElement as LocalVariableElementImpl; + var localElement = node.declaredElement2 as LocalVariableElementImpl; element = localElement; var varList = node.parent as VariableDeclarationList; @@ -1153,7 +1153,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { var variables = node.variables; for (var i = 0; i < variables.length; i++) { var variable = variables[i]; - var element = variable.declaredElement as ElementImpl; + var element = variable.declaredElement2 as ElementImpl; _setOrCreateMetadataElements(element, annotations, visitNodes: false); var offset = (i == 0 ? node.parent! : variable).offset; @@ -1195,7 +1195,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { var node = statement.functionDeclaration; var nameToken = node.name2; var element = FunctionElementImpl(nameToken.lexeme, nameToken.offset); - node.declaredElement = element; + node.declaredElement2 = element; _define(element); _elementHolder.enclose(element); } @@ -1220,7 +1220,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { nameToken.offset, ); } - variable.declaredElement = element; + variable.declaredElement2 = element; _elementHolder.enclose(element); _define(element); @@ -1249,7 +1249,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { _setCodeRange(element, typeParameter); } - typeParameter.declaredElement = element; + typeParameter.declaredElement2 = element; // ignore: deprecated_member_use_from_same_package typeParameter.name.staticElement = element; _define(element); diff --git a/pkg/analyzer/lib/src/dart/resolver/scope.dart b/pkg/analyzer/lib/src/dart/resolver/scope.dart index 9249da9b343e4..f36a0784340d1 100644 --- a/pkg/analyzer/lib/src/dart/resolver/scope.dart +++ b/pkg/analyzer/lib/src/dart/resolver/scope.dart @@ -27,10 +27,10 @@ class BlockScope { NodeList variables = statement.variables.variables; int variableCount = variables.length; for (int j = 0; j < variableCount; j++) { - yield variables[j].declaredElement!; + yield variables[j].declaredElement2!; } } else if (statement is FunctionDeclarationStatement) { - yield statement.functionDeclaration.declaredElement!; + yield statement.functionDeclaration.declaredElement2!; } } } diff --git a/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart index d9be7b73abc63..338720021f884 100644 --- a/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart +++ b/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart @@ -39,7 +39,7 @@ class VariableDeclarationResolver { return; } - var element = node.declaredElement!; + var element = node.declaredElement2!; var isTopLevel = element is FieldElement || element is TopLevelVariableElement; diff --git a/pkg/analyzer/lib/src/error/best_practices_verifier.dart b/pkg/analyzer/lib/src/error/best_practices_verifier.dart index ec88c94bb1e65..15d2cf5b83e1d 100644 --- a/pkg/analyzer/lib/src/error/best_practices_verifier.dart +++ b/pkg/analyzer/lib/src/error/best_practices_verifier.dart @@ -155,10 +155,11 @@ class BestPracticesVerifier extends RecursiveAstVisitor { HintCode.INVALID_IMMUTABLE_ANNOTATION, node, []); } } else if (element.isInternal) { - var parentElement = parent is Declaration ? parent.declaredElement : null; + var parentElement = + parent is Declaration ? parent.declaredElement2 : null; if (parent is TopLevelVariableDeclaration) { for (VariableDeclaration variable in parent.variables.variables) { - var element = variable.declaredElement as TopLevelVariableElement; + var element = variable.declaredElement2 as TopLevelVariableElement; if (Identifier.isPrivateName(element.name)) { _errorReporter.reportErrorForNode( HintCode.INVALID_INTERNAL_ANNOTATION, variable, []); @@ -166,14 +167,14 @@ class BestPracticesVerifier extends RecursiveAstVisitor { } } else if (parent is FieldDeclaration) { for (VariableDeclaration variable in parent.fields.variables) { - var element = variable.declaredElement as FieldElement; + var element = variable.declaredElement2 as FieldElement; if (Identifier.isPrivateName(element.name)) { _errorReporter.reportErrorForNode( HintCode.INVALID_INTERNAL_ANNOTATION, variable, []); } } } else if (parent is ConstructorDeclaration) { - var class_ = parent.declaredElement!.enclosingElement3; + var class_ = parent.declaredElement2!.enclosingElement3; if (class_.isPrivate || (parentElement?.isPrivate ?? false)) { _errorReporter.reportErrorForNode( HintCode.INVALID_INTERNAL_ANNOTATION, node, []); @@ -255,7 +256,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { if (parent is TopLevelVariableDeclaration) { for (VariableDeclaration variable in parent.variables.variables) { var variableElement = - variable.declaredElement as TopLevelVariableElement; + variable.declaredElement2 as TopLevelVariableElement; if (Identifier.isPrivateName(variableElement.name)) { reportInvalidAnnotation(variableElement); @@ -268,7 +269,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { } } else if (parent is FieldDeclaration) { for (VariableDeclaration variable in parent.fields.variables) { - var fieldElement = variable.declaredElement as FieldElement; + var fieldElement = variable.declaredElement2 as FieldElement; if (parent.isStatic && element.isVisibleForOverriding == true) { reportInvalidVisibleForOverriding(fieldElement); } @@ -277,8 +278,8 @@ class BestPracticesVerifier extends RecursiveAstVisitor { reportInvalidAnnotation(fieldElement); } } - } else if (parent.declaredElement != null) { - final declaredElement = parent.declaredElement!; + } else if (parent.declaredElement2 != null) { + final declaredElement = parent.declaredElement2!; if (element.isVisibleForOverriding && !declaredElement.isInstanceMember) { reportInvalidVisibleForOverriding(declaredElement); @@ -377,7 +378,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { @override void visitClassDeclaration(ClassDeclaration node) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; _enclosingClass = element; _invalidAccessVerifier._enclosingClass = element; @@ -421,7 +422,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { @override void visitConstructorDeclaration(ConstructorDeclaration node) { - var element = node.declaredElement as ConstructorElementImpl; + var element = node.declaredElement2 as ConstructorElementImpl; if (!_isNonNullableByDefault && element.isFactory) { if (node.body is BlockFunctionBody) { // Check the block for a return statement, if not, create the hint. @@ -470,7 +471,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { super.visitFieldDeclaration(node); for (var field in node.fields.variables) { ExecutableElement? getOverriddenPropertyAccessor() { - final element = field.declaredElement; + final element = field.declaredElement2; if (element is PropertyAccessorElement || element is FieldElement) { Name name = Name(_currentLibrary.source.uri, element!.name); Element enclosingElement = element.enclosingElement3!; @@ -526,7 +527,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { @override void visitFunctionDeclaration(FunctionDeclaration node) { bool wasInDoNotStoreMember = _inDoNotStoreMember; - ExecutableElement element = node.declaredElement!; + ExecutableElement element = node.declaredElement2!; _deprecatedVerifier.pushInDeprecatedValue(element.hasDeprecated); if (element.hasDoNotStore) { _inDoNotStoreMember = true; @@ -641,7 +642,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { @override void visitMethodDeclaration(MethodDeclaration node) { bool wasInDoNotStoreMember = _inDoNotStoreMember; - var element = node.declaredElement!; + var element = node.declaredElement2!; var enclosingElement = element.enclosingElement3; Name name = Name(_currentLibrary.source.uri, element.name); @@ -716,7 +717,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { @override void visitMixinDeclaration(MixinDeclaration node) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; _enclosingClass = element; _invalidAccessVerifier._enclosingClass = _enclosingClass; @@ -1049,7 +1050,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { return nonFinalFields; } - var element = node.declaredElement as ClassElement; + var element = node.declaredElement2 as ClassElement; if (isOrInheritsImmutable(element, HashSet())) { Iterable nonFinalFields = definedOrInheritedNonFinalInstanceFields( @@ -1170,7 +1171,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { // ClassElement, but [_checkForInvalidSealedSuperclass] should only be // called with a [ClassOrMixinDeclaration], or a [ClassTypeAlias]. The // `declaredElement` of these specific classes is a [ClassElement]. - var element = node.declaredElement as ClassElement; + var element = node.declaredElement2 as ClassElement; // TODO(srawlins): Perhaps replace this with a getter on Element, like // `Element.hasOrInheritsSealed`? for (InterfaceType supertype in element.allSupertypes) { @@ -1451,7 +1452,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor { _errorReporter.reportErrorForNode( HintCode.RETURN_OF_DO_NOT_STORE, entry.key, - [entry.value.name!, parent.declaredElement!.displayName], + [entry.value.name!, parent.declaredElement2!.displayName], ); } } diff --git a/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart b/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart index 00252ab90822c..719164613c6e0 100644 --- a/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart +++ b/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart @@ -272,7 +272,7 @@ class DeprecatedMemberUseVerifier { for (; node != null; node = node.parent) { if (node is ConstructorDeclaration) { - if (node.declaredElement == definingFunction) { + if (node.declaredElement2 == definingFunction) { return true; } } else if (node is FunctionExpression) { @@ -280,7 +280,7 @@ class DeprecatedMemberUseVerifier { return true; } } else if (node is MethodDeclaration) { - if (node.declaredElement == definingFunction) { + if (node.declaredElement2 == definingFunction) { return true; } } diff --git a/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart b/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart index 366f6f6a2fa20..163872a6ad8cf 100644 --- a/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart +++ b/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart @@ -9,7 +9,6 @@ import 'package:analyzer/dart/ast/token.dart'; import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/error/error.dart'; import 'package:analyzer/error/listener.dart'; -import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/dart/element/inheritance_manager3.dart'; import 'package:analyzer/src/diagnostic/diagnostic_factory.dart'; import 'package:analyzer/src/error/codes.dart'; @@ -46,12 +45,12 @@ class DuplicateDefinitionVerifier { } void checkClass(ClassDeclaration node) { - _checkClassMembers(node.declaredElement!, node.members); + _checkClassMembers(node.declaredElement2!, node.members); } /// Check that there are no members with the same name. void checkEnum(EnumDeclaration node) { - var enumElement = node.declaredElement as EnumElementImpl; + var enumElement = node.declaredElement2!; var enumName = enumElement.name; var constructorNames = {}; @@ -62,14 +61,14 @@ class DuplicateDefinitionVerifier { for (EnumConstantDeclaration constant in node.constants) { _checkDuplicateIdentifier(staticGetters, constant.name2, - element: constant.declaredElement!); + element: constant.declaredElement2!); _checkValuesDeclarationInEnum(constant.name2); } for (var member in node.members) { if (member is ConstructorDeclaration) { if (member.returnType.name == enumElement.name) { - var name = member.declaredElement!.name; + var name = member.declaredElement2!.name; if (!constructorNames.add(name)) { if (name.isEmpty) { _errorReporter.reportErrorForName( @@ -91,7 +90,7 @@ class DuplicateDefinitionVerifier { _checkDuplicateIdentifier( member.isStatic ? staticGetters : instanceGetters, identifier, - element: field.declaredElement!, + element: field.declaredElement2!, setterScope: member.isStatic ? staticSetters : instanceSetters, ); _checkValuesDeclarationInEnum(identifier); @@ -100,7 +99,7 @@ class DuplicateDefinitionVerifier { _checkDuplicateIdentifier( member.isStatic ? staticGetters : instanceGetters, member.name2, - element: member.declaredElement!, + element: member.declaredElement2!, setterScope: member.isStatic ? staticSetters : instanceSetters, ); if (!(member.isStatic && member.isSetter)) { @@ -126,7 +125,7 @@ class DuplicateDefinitionVerifier { } _checkConflictingConstructorAndStatic( - classElement: enumElement, + interfaceElement: enumElement, staticGetters: staticGetters, staticSetters: staticSetters, ); @@ -200,7 +199,7 @@ class DuplicateDefinitionVerifier { _checkDuplicateIdentifier( member.isStatic ? staticGetters : instanceGetters, identifier, - element: field.declaredElement!, + element: field.declaredElement2!, setterScope: member.isStatic ? staticSetters : instanceSetters, ); } @@ -208,7 +207,7 @@ class DuplicateDefinitionVerifier { _checkDuplicateIdentifier( member.isStatic ? staticGetters : instanceGetters, member.name2, - element: member.declaredElement!, + element: member.declaredElement2!, setterScope: member.isStatic ? staticSetters : instanceSetters, ); } @@ -254,12 +253,12 @@ class DuplicateDefinitionVerifier { Map definedNames = HashMap(); for (VariableDeclaration variable in node.variables) { _checkDuplicateIdentifier(definedNames, variable.name2, - element: variable.declaredElement!); + element: variable.declaredElement2!); } } void checkMixin(MixinDeclaration node) { - _checkClassMembers(node.declaredElement!, node.members); + _checkClassMembers(node.declaredElement2!, node.members); } /// Check that all of the parameters have unique names. @@ -283,13 +282,13 @@ class DuplicateDefinitionVerifier { if (statement is VariableDeclarationStatement) { for (VariableDeclaration variable in statement.variables.variables) { _checkDuplicateIdentifier(definedNames, variable.name2, - element: variable.declaredElement!); + element: variable.declaredElement2!); } } else if (statement is FunctionDeclarationStatement) { _checkDuplicateIdentifier( definedNames, statement.functionDeclaration.name2, - element: statement.functionDeclaration.declaredElement!, + element: statement.functionDeclaration.declaredElement2!, ); } } @@ -300,7 +299,7 @@ class DuplicateDefinitionVerifier { Map definedNames = HashMap(); for (TypeParameter parameter in node.typeParameters) { _checkDuplicateIdentifier(definedNames, parameter.name2, - element: parameter.declaredElement!); + element: parameter.declaredElement2!); } } @@ -358,22 +357,22 @@ class DuplicateDefinitionVerifier { var identifier = member.name2; if (identifier != null) { _checkDuplicateIdentifier(definedGetters, identifier, - element: member.declaredElement!, setterScope: definedSetters); + element: member.declaredElement2!, setterScope: definedSetters); } } else if (member is NamedCompilationUnitMember) { _checkDuplicateIdentifier(definedGetters, member.name2, - element: member.declaredElement!, setterScope: definedSetters); + element: member.declaredElement2!, setterScope: definedSetters); } else if (member is TopLevelVariableDeclaration) { for (VariableDeclaration variable in member.variables.variables) { _checkDuplicateIdentifier(definedGetters, variable.name2, - element: variable.declaredElement!, setterScope: definedSetters); + element: variable.declaredElement2!, setterScope: definedSetters); } } } } /// Check that there are no members with the same name. - void _checkClassMembers(ClassElement element, List members) { + void _checkClassMembers(InterfaceElement element, List members) { var constructorNames = HashSet(); var instanceGetters = HashMap(); var instanceSetters = HashMap(); @@ -405,7 +404,7 @@ class DuplicateDefinitionVerifier { _checkDuplicateIdentifier( member.isStatic ? staticGetters : instanceGetters, field.name2, - element: field.declaredElement!, + element: field.declaredElement2!, setterScope: member.isStatic ? staticSetters : instanceSetters, ); } @@ -413,14 +412,14 @@ class DuplicateDefinitionVerifier { _checkDuplicateIdentifier( member.isStatic ? staticGetters : instanceGetters, member.name2, - element: member.declaredElement!, + element: member.declaredElement2!, setterScope: member.isStatic ? staticSetters : instanceSetters, ); } } _checkConflictingConstructorAndStatic( - classElement: element, + interfaceElement: element, staticGetters: staticGetters, staticSetters: staticSetters, ); @@ -462,11 +461,11 @@ class DuplicateDefinitionVerifier { } void _checkConflictingConstructorAndStatic({ - required ClassElement classElement, + required InterfaceElement interfaceElement, required Map staticGetters, required Map staticSetters, }) { - for (var constructor in classElement.constructors) { + for (var constructor in interfaceElement.constructors) { var name = constructor.name; var staticMember = staticGetters[name] ?? staticSetters[name]; if (staticMember is PropertyAccessorElement) { @@ -578,7 +577,7 @@ class DuplicateDefinitionVerifier { } ExecutableElement? _getInheritedMember( - ClassElement element, String baseName) { + InterfaceElement element, String baseName) { var libraryUri = _currentLibrary.source.uri; var getterName = Name(libraryUri, baseName); @@ -592,7 +591,7 @@ class DuplicateDefinitionVerifier { } ExecutableElement? _getInterfaceMember( - ClassElement element, String baseName) { + InterfaceElement element, String baseName) { var libraryUri = _currentLibrary.source.uri; var getterName = Name(libraryUri, baseName); diff --git a/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart b/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart index ba54bdc269a03..cb76e1b83c4b7 100644 --- a/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart +++ b/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart @@ -39,8 +39,8 @@ class GetterSetterTypesVerifier { } } - void checkInterface(ClassElement classElement, Interface interface) { - var libraryUri = classElement.library.source.uri; + void checkInterface(InterfaceElement element, Interface interface) { + var libraryUri = element.library.source.uri; for (var name in interface.map.keys) { if (!name.isAccessibleFor(libraryUri)) continue; @@ -53,22 +53,22 @@ class GetterSetterTypesVerifier { var setterType = setter.parameters[0].type; if (!_match(getterType, setterType)) { Element errorElement; - if (getter.enclosingElement3 == classElement) { + if (getter.enclosingElement3 == element) { errorElement = getter; - } else if (setter.enclosingElement3 == classElement) { + } else if (setter.enclosingElement3 == element) { errorElement = setter; } else { - errorElement = classElement; + errorElement = element; } var getterName = getter.displayName; - if (getter.enclosingElement3 != classElement) { + if (getter.enclosingElement3 != element) { var getterClassName = getter.enclosingElement3.displayName; getterName = '$getterClassName.$getterName'; } var setterName = setter.displayName; - if (setter.enclosingElement3 != classElement) { + if (setter.enclosingElement3 != element) { var setterClassName = setter.enclosingElement3.displayName; setterName = '$setterClassName.$setterName'; } diff --git a/pkg/analyzer/lib/src/error/inheritance_override.dart b/pkg/analyzer/lib/src/error/inheritance_override.dart index 5740b3901b0de..e17c257fb27c7 100644 --- a/pkg/analyzer/lib/src/error/inheritance_override.dart +++ b/pkg/analyzer/lib/src/error/inheritance_override.dart @@ -46,7 +46,7 @@ class InheritanceOverrideVerifier { featureSet: unit.featureSet, library: library, classNameToken: declaration.name2, - classElement: declaration.declaredElement as AbstractClassElementImpl, + classElement: declaration.declaredElement2!, implementsClause: declaration.implementsClause, members: declaration.members, superclass: declaration.extendsClause?.superclass, @@ -61,7 +61,7 @@ class InheritanceOverrideVerifier { featureSet: unit.featureSet, library: library, classNameToken: declaration.name2, - classElement: declaration.declaredElement as AbstractClassElementImpl, + classElement: declaration.declaredElement2!, implementsClause: declaration.implementsClause, superclass: declaration.superclass, withClause: declaration.withClause, @@ -75,7 +75,7 @@ class InheritanceOverrideVerifier { featureSet: unit.featureSet, library: library, classNameToken: declaration.name2, - classElement: declaration.declaredElement as AbstractClassElementImpl, + classElement: declaration.declaredElement2!, implementsClause: declaration.implementsClause, members: declaration.members, withClause: declaration.withClause, @@ -89,7 +89,7 @@ class InheritanceOverrideVerifier { featureSet: unit.featureSet, library: library, classNameToken: declaration.name2, - classElement: declaration.declaredElement as AbstractClassElementImpl, + classElement: declaration.declaredElement2!, implementsClause: declaration.implementsClause, members: declaration.members, onClause: declaration.onClause, @@ -122,7 +122,7 @@ class _ClassVerifier { final FeatureSet featureSet; final LibraryElementImpl library; final Uri libraryUri; - final AbstractClassElementImpl classElement; + final InterfaceElement classElement; final Token classNameToken; final List members; @@ -161,7 +161,9 @@ class _ClassVerifier { return true; } + final classElement = this.classElement; if (classElement is! EnumElement && + classElement is ClassElement && !classElement.isAbstract && implementsDartCoreEnum) { reporter.reportErrorForToken( @@ -186,7 +188,9 @@ class _ClassVerifier { if (classElement.supertype != null) { directSuperInterfaces.add(classElement.supertype!); } - directSuperInterfaces.addAll(classElement.superclassConstraints); + if (classElement is MixinElement) { + directSuperInterfaces.addAll(classElement.superclassConstraints); + } // Each mixin in `class C extends S with M0, M1, M2 {}` is equivalent to: // class S&M0 extends S { ...members of M0... } @@ -211,7 +215,7 @@ class _ClassVerifier { if (member is FieldDeclaration) { var fieldList = member.fields; for (var field in fieldList.variables) { - var fieldElement = field.declaredElement as FieldElement; + var fieldElement = field.declaredElement2 as FieldElement; _checkDeclaredMember(field.name2, libraryUri, fieldElement.getter); _checkDeclaredMember(field.name2, libraryUri, fieldElement.setter); if (!member.isStatic && classElement is! EnumElement) { @@ -227,7 +231,7 @@ class _ClassVerifier { continue; } - _checkDeclaredMember(member.name2, libraryUri, member.declaredElement, + _checkDeclaredMember(member.name2, libraryUri, member.declaredElement2, methodParameterNodes: member.parameters?.parameters); if (!(member.isStatic || member.isAbstract || member.isSetter)) { _checkIllegalConcreteEnumMemberDeclaration(member.name2); @@ -246,7 +250,7 @@ class _ClassVerifier { errorReporter: reporter, ).checkInterface(classElement, interface); - if (!classElement.isAbstract) { + if (!(classElement as ClassElement).isAbstract) { List? inheritedAbstract; for (var name in interface.map.keys) { @@ -402,12 +406,14 @@ class _ClassVerifier { return false; } - var interfaceElement = type.element2; + final typeElement = type.element2; - if (interfaceElement is ClassElement && - interfaceElement.isDartCoreEnum && + final classElement = this.classElement; + if (typeElement is ClassElement && + typeElement.isDartCoreEnum && library.featureSet.isEnabled(Feature.enhanced_enums)) { - if (classElement.isAbstract || classElement is EnumElement) { + if (classElement is ClassElement && classElement.isAbstract || + classElement is EnumElement) { return false; } reporter.reportErrorForNode( @@ -417,7 +423,7 @@ class _ClassVerifier { return true; } - if (typeProvider.isNonSubtypableClass(interfaceElement)) { + if (typeProvider.isNonSubtypableClass(typeElement)) { reporter.reportErrorForNode(errorCode, namedType, [type]); return true; } @@ -671,14 +677,19 @@ class _ClassVerifier { } void _checkIllegalConcreteEnumMemberDeclaration(Token name) { - if (implementsDartCoreEnum && - !classElement.isDartCoreEnumImpl && - const {'index', 'hashCode', '=='}.contains(name.lexeme)) { - reporter.reportErrorForToken( - CompileTimeErrorCode.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION, - name, - [name.lexeme], - ); + if (implementsDartCoreEnum) { + final classElement = this.classElement; + if (classElement is ClassElementImpl && + !classElement.isDartCoreEnumImpl || + classElement is EnumElementImpl) { + if (const {'index', 'hashCode', '=='}.contains(name.lexeme)) { + reporter.reportErrorForToken( + CompileTimeErrorCode.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION, + name, + [name.lexeme], + ); + } + } } } @@ -918,7 +929,7 @@ class _ClassVerifier { } bool _reportNoCombinedSuperSignature(MethodDeclaration node) { - var element = node.declaredElement; + var element = node.declaredElement2; if (element is MethodElementImpl) { var inferenceError = element.typeInferenceError; if (inferenceError?.kind == diff --git a/pkg/analyzer/lib/src/error/must_call_super_verifier.dart b/pkg/analyzer/lib/src/error/must_call_super_verifier.dart index 7908d2de0362a..c473cbf4f83c9 100644 --- a/pkg/analyzer/lib/src/error/must_call_super_verifier.dart +++ b/pkg/analyzer/lib/src/error/must_call_super_verifier.dart @@ -20,7 +20,7 @@ class MustCallSuperVerifier { if (node.isStatic || node.isAbstract) { return; } - var element = node.declaredElement!; + var element = node.declaredElement2!; var overridden = _findOverriddenMemberWithMustCallSuper(element); if (overridden == null) { return; @@ -136,7 +136,7 @@ class MustCallSuperVerifier { void _verifySuperIsCalled(MethodDeclaration node, String methodName, String? overriddenEnclosingName) { - var declaredElement = node.declaredElement as ExecutableElementImpl; + var declaredElement = node.declaredElement2 as ExecutableElementImpl; if (!declaredElement.invokesSuperSelf) { // Overridable elements are always enclosed in named elements, so it is // safe to assume [overriddenEnclosingName] is non-`null`. diff --git a/pkg/analyzer/lib/src/error/override_verifier.dart b/pkg/analyzer/lib/src/error/override_verifier.dart index e3a6fcb880596..5a50cf48e101a 100644 --- a/pkg/analyzer/lib/src/error/override_verifier.dart +++ b/pkg/analyzer/lib/src/error/override_verifier.dart @@ -23,7 +23,7 @@ class OverrideVerifier extends RecursiveAstVisitor { final ErrorReporter _errorReporter; /// The current class or mixin. - ClassElement? _currentClass; + InterfaceElement? _currentClass; OverrideVerifier( this._inheritance, LibraryElement library, this._errorReporter) @@ -31,14 +31,14 @@ class OverrideVerifier extends RecursiveAstVisitor { @override void visitClassDeclaration(ClassDeclaration node) { - _currentClass = node.declaredElement; + _currentClass = node.declaredElement2; super.visitClassDeclaration(node); _currentClass = null; } @override void visitEnumDeclaration(EnumDeclaration node) { - _currentClass = node.declaredElement; + _currentClass = node.declaredElement2; super.visitEnumDeclaration(node); _currentClass = null; } @@ -46,7 +46,7 @@ class OverrideVerifier extends RecursiveAstVisitor { @override void visitFieldDeclaration(FieldDeclaration node) { for (VariableDeclaration field in node.fields.variables) { - var fieldElement = field.declaredElement as FieldElement; + var fieldElement = field.declaredElement2 as FieldElement; if (fieldElement.hasOverride) { var getter = fieldElement.getter; if (getter != null && _isOverride(getter)) continue; @@ -64,7 +64,7 @@ class OverrideVerifier extends RecursiveAstVisitor { @override void visitMethodDeclaration(MethodDeclaration node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; if (element.hasOverride && !_isOverride(element)) { if (element is MethodElement) { _errorReporter.reportErrorForToken( @@ -89,7 +89,7 @@ class OverrideVerifier extends RecursiveAstVisitor { @override void visitMixinDeclaration(MixinDeclaration node) { - _currentClass = node.declaredElement; + _currentClass = node.declaredElement2; super.visitMixinDeclaration(node); _currentClass = null; } 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 3cbfd39c5b197..140b81d2ba781 100644 --- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart +++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart @@ -72,7 +72,7 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor { void visitClassDeclaration(ClassDeclaration node) { var enclosingClassOld = _enclosingClass; try { - _enclosingClass = node.declaredElement; + _enclosingClass = node.declaredElement2; super.visitClassDeclaration(node); } finally { _enclosingClass = enclosingClassOld; @@ -81,7 +81,7 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor { @override void visitConstructorDeclaration(ConstructorDeclaration node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; var redirectedConstructor = node.redirectedConstructor; if (redirectedConstructor != null) { var redirectedElement = redirectedConstructor.staticElement; @@ -126,7 +126,7 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor { void visitFunctionDeclaration(FunctionDeclaration node) { var enclosingExecOld = _enclosingExec; try { - _enclosingExec = node.declaredElement; + _enclosingExec = node.declaredElement2; super.visitFunctionDeclaration(node); } finally { _enclosingExec = enclosingExecOld; @@ -176,7 +176,7 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor { void visitMethodDeclaration(MethodDeclaration node) { var enclosingExecOld = _enclosingExec; try { - _enclosingExec = node.declaredElement; + _enclosingExec = node.declaredElement2; super.visitMethodDeclaration(node); } finally { _enclosingExec = enclosingExecOld; @@ -456,7 +456,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitClassDeclaration(ClassDeclaration node) { - final declaredElement = node.declaredElement as ClassElement; + final declaredElement = node.declaredElement2!; _visitClassElement(declaredElement); super.visitClassDeclaration(node); @@ -465,7 +465,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitConstructorDeclaration(ConstructorDeclaration node) { if (node.name2 != null) { - final declaredElement = node.declaredElement as ConstructorElement; + final declaredElement = node.declaredElement2!; _visitConstructorElement(declaredElement); } @@ -474,7 +474,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitEnumConstantDeclaration(EnumConstantDeclaration node) { - final declaredElement = node.declaredElement as FieldElement; + final declaredElement = node.declaredElement2 as FieldElement; _visitFieldElement(declaredElement); super.visitEnumConstantDeclaration(node); @@ -482,7 +482,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitEnumDeclaration(EnumDeclaration node) { - final declaredElement = node.declaredElement as ClassElement; + final declaredElement = node.declaredElement2!; _visitClassElement(declaredElement); super.visitEnumDeclaration(node); @@ -501,7 +501,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitFunctionDeclaration(FunctionDeclaration node) { - final declaredElement = node.declaredElement; + final declaredElement = node.declaredElement2; if (declaredElement is FunctionElement) { _visitFunctionElement(declaredElement); } else if (declaredElement is PropertyAccessorElement) { @@ -513,7 +513,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitFunctionTypeAlias(FunctionTypeAlias node) { - final declaredElement = node.declaredElement as TypeAliasElement; + final declaredElement = node.declaredElement2!; _visitTypeAliasElement(declaredElement); super.visitFunctionTypeAlias(node); @@ -521,7 +521,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitGenericTypeAlias(GenericTypeAlias node) { - final declaredElement = node.declaredElement as TypeAliasElement; + final declaredElement = node.declaredElement2 as TypeAliasElement; _visitTypeAliasElement(declaredElement); super.visitGenericTypeAlias(node); @@ -529,7 +529,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitMethodDeclaration(MethodDeclaration node) { - final declaredElement = node.declaredElement; + final declaredElement = node.declaredElement2; if (declaredElement is MethodElement) { _visitMethodElement(declaredElement); } else if (declaredElement is PropertyAccessorElement) { @@ -541,7 +541,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { @override void visitMixinDeclaration(MixinDeclaration node) { - final declaredElement = node.declaredElement as ClassElement; + final declaredElement = node.declaredElement2!; _visitClassElement(declaredElement); super.visitMixinDeclaration(node); @@ -797,7 +797,7 @@ class UnusedLocalElementsVerifier extends RecursiveAstVisitor { } } - void _visitClassElement(ClassElement element) { + void _visitClassElement(InterfaceElement element) { if (!_isUsedElement(element)) { _reportErrorForElement( HintCode.UNUSED_ELEMENT, element, [element.displayName]); diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart index 70bb5906005eb..4b487caff1232 100644 --- a/pkg/analyzer/lib/src/generated/element_resolver.dart +++ b/pkg/analyzer/lib/src/generated/element_resolver.dart @@ -128,7 +128,7 @@ class ElementResolver { } void visitConstructorDeclaration(ConstructorDeclaration node) { - ConstructorElement element = node.declaredElement!; + ConstructorElement element = node.declaredElement2!; if (element is ConstructorElementImpl) { var redirectedNode = node.redirectedConstructor; if (redirectedNode != null) { diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart index 8a7106b5859cc..a2e385154b7fb 100644 --- a/pkg/analyzer/lib/src/generated/error_verifier.dart +++ b/pkg/analyzer/lib/src/generated/error_verifier.dart @@ -202,7 +202,7 @@ class ErrorVerifier extends RecursiveAstVisitor /// The class containing the AST nodes being visited, or `null` if we are not /// in the scope of a class. - ClassElement? _enclosingClass; + InterfaceElement? _enclosingClass; /// The element of the extension being visited, or `null` if we are not /// in the scope of an extension. @@ -267,7 +267,7 @@ class ErrorVerifier extends RecursiveAstVisitor ); } - ClassElement? get enclosingClass => _enclosingClass; + InterfaceElement? get enclosingClass => _enclosingClass; /// For consumers of error verification as a library, (currently just the /// angular plugin), expose a setter that can make the errors reported more @@ -275,7 +275,7 @@ class ErrorVerifier extends RecursiveAstVisitor /// context. Note that this setter is very defensive for potential misuse; it /// should not be modified in the middle of visiting a tree and requires an /// analyzer-provided Impl instance to work. - set enclosingClass(ClassElement? classElement) { + set enclosingClass(InterfaceElement? interfaceElement) { assert(_enclosingClass == null); assert(_enclosingExecutable.element == null); } @@ -421,7 +421,7 @@ class ErrorVerifier extends RecursiveAstVisitor void visitClassDeclaration(ClassDeclaration node) { var outerClass = _enclosingClass; try { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; _isInNativeClass = node.nativeClause != null; _enclosingClass = element; @@ -448,7 +448,7 @@ class ErrorVerifier extends RecursiveAstVisitor _checkForFinalNotInitializedInClass(members); _checkForBadFunctionUse(node); _checkForWrongTypeParameterVarianceInSuperinterfaces(); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _reportMacroApplicationErrors( annotations: node.metadata, macroErrors: element.macroApplicationErrors, @@ -473,10 +473,10 @@ class ErrorVerifier extends RecursiveAstVisitor node.name2, CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME); var outerClassElement = _enclosingClass; try { - _enclosingClass = node.declaredElement as ClassElementImpl; + _enclosingClass = node.declaredElement2 as ClassElementImpl; _checkClassInheritance( node, node.superclass, node.withClause, node.implementsClause); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _checkForWrongTypeParameterVarianceInSuperinterfaces(); } finally { _enclosingClass = outerClassElement; @@ -513,7 +513,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitConstructorDeclaration(ConstructorDeclaration node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _withEnclosingExecutable(element, () { _checkForNonConstGenerativeEnumConstructor(node); _checkForInvalidModifierOnBody( @@ -596,7 +596,7 @@ class ErrorVerifier extends RecursiveAstVisitor void visitEnumDeclaration(EnumDeclaration node) { var outerClass = _enclosingClass; try { - var element = node.declaredElement as EnumElementImpl; + var element = node.declaredElement2 as EnumElementImpl; _enclosingClass = element; _duplicateDefinitionVerifier.checkEnum(node); @@ -613,7 +613,7 @@ class ErrorVerifier extends RecursiveAstVisitor _constructorFieldsVerifier.enterEnum(node, element); _checkForFinalNotInitializedInClass(node.members); _checkForWrongTypeParameterVarianceInSuperinterfaces(); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _checkForEnumInstantiatedToBoundsIsNotWellBounded(node, element); GetterSetterTypesVerifier( @@ -653,7 +653,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitExtensionDeclaration(ExtensionDeclaration node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _enclosingExtension = element; _duplicateDefinitionVerifier.checkExtension(node); _checkForConflictingExtensionTypeVariableErrorCodes(); @@ -719,7 +719,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitForEachPartsWithDeclaration(ForEachPartsWithDeclaration node) { DeclaredIdentifier loopVariable = node.loopVariable; - if (_checkForEachParts(node, loopVariable.declaredElement)) { + if (_checkForEachParts(node, loopVariable.declaredElement2)) { if (loopVariable.isConst) { errorReporter.reportErrorForToken( CompileTimeErrorCode.FOR_IN_WITH_CONST_VARIABLE, @@ -754,7 +754,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitFunctionDeclaration(FunctionDeclaration node) { - ExecutableElement functionElement = node.declaredElement!; + ExecutableElement functionElement = node.declaredElement2!; if (functionElement.enclosingElement3 is! CompilationUnitElement) { _hiddenElements!.declare(functionElement); } @@ -769,8 +769,8 @@ class ErrorVerifier extends RecursiveAstVisitor } _checkForTypeAnnotationDeferredClass(returnType); _returnTypeVerifier.verifyReturnType(returnType); - _checkForImplicitDynamicReturn(node.name2, node.declaredElement!); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForImplicitDynamicReturn(node.name2, node.declaredElement2!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _checkForMainFunction2(node); super.visitFunctionDeclaration(node); }); @@ -817,9 +817,9 @@ class ErrorVerifier extends RecursiveAstVisitor void visitFunctionTypeAlias(FunctionTypeAlias node) { _checkForBuiltInIdentifierAsName( node.name2, CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _checkForTypeAliasCannotReferenceItself( - node.name2, node.declaredElement as TypeAliasElementImpl); + node.name2, node.declaredElement2 as TypeAliasElementImpl); super.visitFunctionTypeAlias(node); } @@ -854,9 +854,9 @@ class ErrorVerifier extends RecursiveAstVisitor void visitGenericTypeAlias(GenericTypeAlias node) { _checkForBuiltInIdentifierAsName( node.name2, CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _checkForTypeAliasCannotReferenceItself( - node.name2, node.declaredElement as TypeAliasElementImpl); + node.name2, node.declaredElement2 as TypeAliasElementImpl); super.visitGenericTypeAlias(node); } @@ -947,7 +947,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitMethodDeclaration(MethodDeclaration node) { - _withEnclosingExecutable(node.declaredElement!, () { + _withEnclosingExecutable(node.declaredElement2!, () { var returnType = node.returnType; if (node.isSetter) { _checkForWrongNumberOfParametersForSetter(node.name2, node.parameters); @@ -965,7 +965,7 @@ class ErrorVerifier extends RecursiveAstVisitor _checkForExtensionDeclaresMemberOfObject(node); _checkForTypeAnnotationDeferredClass(returnType); _returnTypeVerifier.verifyReturnType(returnType); - _checkForImplicitDynamicReturn(node.name2, node.declaredElement!); + _checkForImplicitDynamicReturn(node.name2, node.declaredElement2!); _checkForWrongTypeParameterVarianceInMethod(node); super.visitMethodDeclaration(node); }); @@ -995,7 +995,7 @@ class ErrorVerifier extends RecursiveAstVisitor // TODO(scheglov) Verify for all mixin errors. var outerClass = _enclosingClass; try { - _enclosingClass = node.declaredElement as ClassElementImpl; + _enclosingClass = node.declaredElement2!; List members = node.members; _duplicateDefinitionVerifier.checkMixin(node); @@ -1013,7 +1013,7 @@ class ErrorVerifier extends RecursiveAstVisitor _checkForConflictingClassMembers(); _checkForFinalNotInitializedInClass(members); - _checkForMainFunction1(node.name2, node.declaredElement!); + _checkForMainFunction1(node.name2, node.declaredElement2!); _checkForWrongTypeParameterVarianceInSuperinterfaces(); // _checkForBadFunctionUse(node); super.visitMixinDeclaration(node); @@ -1274,7 +1274,7 @@ class ErrorVerifier extends RecursiveAstVisitor _checkForNotInitializedNonNullableVariable(node.variables, true); for (var variable in node.variables.variables) { - _checkForMainFunction1(variable.name2, variable.declaredElement!); + _checkForMainFunction1(variable.name2, variable.declaredElement2!); } super.visitTopLevelVariableDeclaration(node); @@ -1313,7 +1313,7 @@ class ErrorVerifier extends RecursiveAstVisitor var initializerNode = node.initializer; // do checks _checkForImplicitDynamicIdentifier(node, nameToken, - variable: node.declaredElement!); + variable: node.declaredElement2!); _checkForAbstractOrExternalVariableInitializer(node); // visit initializer String name = nameToken.lexeme; @@ -1329,7 +1329,7 @@ class ErrorVerifier extends RecursiveAstVisitor AstNode grandparent = node.parent!.parent!; if (grandparent is! TopLevelVariableDeclaration && grandparent is! FieldDeclaration) { - VariableElement element = node.declaredElement!; + VariableElement element = node.declaredElement2!; // There is no hidden elements if we are outside of a function body, // which will happen for variables declared in control flow elements. _hiddenElements?.declare(element); @@ -1419,7 +1419,7 @@ class ErrorVerifier extends RecursiveAstVisitor void _checkForAbstractOrExternalVariableInitializer( VariableDeclaration node) { - var declaredElement = node.declaredElement; + var declaredElement = node.declaredElement2; if (node.initializer != null) { if (declaredElement is FieldElement) { if (declaredElement.isAbstract) { @@ -1521,7 +1521,7 @@ class ErrorVerifier extends RecursiveAstVisitor DartType redirectedReturnType = redirectedType.returnType; // Report specific problem when return type is incompatible - FunctionType constructorType = declaration.declaredElement!.type; + FunctionType constructorType = declaration.declaredElement2!.type; DartType constructorReturnType = constructorType.returnType; if (!typeSystem.isAssignableTo( redirectedReturnType, constructorReturnType)) { @@ -1926,7 +1926,7 @@ class ErrorVerifier extends RecursiveAstVisitor } void _checkForConflictingGenerics(NamedCompilationUnitMember node) { - var element = node.declaredElement as ClassElement; + var element = node.declaredElement2 as InterfaceElement; var analysisSession = _currentLibrary.session; var errors = analysisSession.classHierarchy.errors(element); @@ -1993,7 +1993,7 @@ class ErrorVerifier extends RecursiveAstVisitor // [declaration] is a redirecting constructor via a redirecting // initializer. _checkForRedirectToNonConstConstructor( - declaration.declaredElement!, + declaration.declaredElement2!, initializer.staticElement, initializer.constructorName ?? initializer.thisKeyword, ); @@ -2721,7 +2721,7 @@ class ErrorVerifier extends RecursiveAstVisitor variable.name2, [variable.name2.lexeme]); } else { - var variableElement = variable.declaredElement; + var variableElement = variable.declaredElement2; if (variableElement is FieldElement && (variableElement.isAbstract || variableElement.isExternal)) { // Abstract and external fields can't be initialized, so no error. @@ -3805,7 +3805,7 @@ class ErrorVerifier extends RecursiveAstVisitor if (_isEnclosingClassFfiUnion) return; for (var field in fields.variables) { - var fieldElement = field.declaredElement as FieldElement; + var fieldElement = field.declaredElement2 as FieldElement; if (fieldElement.isAbstract || fieldElement.isExternal) continue; if (field.initializer != null) continue; @@ -4059,7 +4059,7 @@ class ErrorVerifier extends RecursiveAstVisitor } var redirectedElement = redirectedConstructor.staticElement; _checkForRedirectToNonConstConstructor( - declaration.declaredElement!, + declaration.declaredElement2!, redirectedElement, redirectedConstructor, ); @@ -4322,7 +4322,7 @@ class ErrorVerifier extends RecursiveAstVisitor if (elementToNode == null) { elementToNode = {}; for (var parameter in parameters) { - elementToNode[parameter.declaredElement!] = parameter; + elementToNode[parameter.declaredElement2!] = parameter; } } @@ -4335,7 +4335,7 @@ class ErrorVerifier extends RecursiveAstVisitor current = null; } if (step == parameters.length) { - var element = parameter.declaredElement!; + var element = parameter.declaredElement2!; // This error can only occur if there is a bound, so we can saefly // assume `element.bound` is non-`null`. errorReporter.reportErrorForToken( @@ -4769,7 +4769,7 @@ class ErrorVerifier extends RecursiveAstVisitor // variance is added to the interface. if (!(typeParameter as TypeParameterElementImpl).isLegacyCovariant) { var fields = node.fields; - var fieldElement = fields.variables.first.declaredElement!; + var fieldElement = fields.variables.first.declaredElement2!; var fieldName = fields.variables.first.name2; Variance fieldVariance = Variance(typeParameter, fieldElement.type); @@ -4887,7 +4887,11 @@ class ErrorVerifier extends RecursiveAstVisitor checkOne(_enclosingClass!.supertype); _enclosingClass!.interfaces.forEach(checkOne); _enclosingClass!.mixins.forEach(checkOne); - _enclosingClass!.superclassConstraints.forEach(checkOne); + + final enclosingClass = _enclosingClass; + if (enclosingClass is MixinElement) { + enclosingClass.superclassConstraints.forEach(checkOne); + } } /// Check for invalid variance positions in members of a class or mixin. @@ -5284,7 +5288,7 @@ class ErrorVerifier extends RecursiveAstVisitor if (fieldDeclaration is FieldDeclaration) { for (VariableDeclaration field in fieldDeclaration.fields.variables) { if (field.initializer == null) { - fields.add(field.declaredElement as FieldElement); + fields.add(field.declaredElement2 as FieldElement); } } } diff --git a/pkg/analyzer/lib/src/generated/ffi_verifier.dart b/pkg/analyzer/lib/src/generated/ffi_verifier.dart index 9f13c23d1f24a..90e93adb16fd0 100644 --- a/pkg/analyzer/lib/src/generated/ffi_verifier.dart +++ b/pkg/analyzer/lib/src/generated/ffi_verifier.dart @@ -86,7 +86,7 @@ class FfiVerifier extends RecursiveAstVisitor { if (className == _structClassName || className == _unionClassName) { inCompound = true; compound = node; - if (node.declaredElement!.isEmptyStruct) { + if (node.declaredElement2!.isEmptyStruct) { _errorReporter.reportErrorForToken(FfiCode.EMPTY_STRUCT, node.name2, [node.name2.lexeme, className]); } @@ -148,13 +148,13 @@ class FfiVerifier extends RecursiveAstVisitor { } if (inCompound) { - if (node.declaredElement!.typeParameters.isNotEmpty) { + if (node.declaredElement2!.typeParameters.isNotEmpty) { _errorReporter.reportErrorForToken( FfiCode.GENERIC_STRUCT_SUBCLASS, node.name2, [node.name2.lexeme]); } final implementsClause = node.implementsClause; if (implementsClause != null) { - final compoundType = node.declaredElement!.thisType; + final compoundType = node.declaredElement2!.thisType; final structType = compoundType.superclass!; final ffiLibrary = structType.element2.library; final finalizableElement = ffiLibrary.getClass(_finalizableClassName)!; @@ -194,7 +194,7 @@ class FfiVerifier extends RecursiveAstVisitor { _checkFfiNative( errorNode: node, annotations: node.metadata, - declarationElement: node.declaredElement as ExecutableElement, + declarationElement: node.declaredElement2!, formalParameterList: node.functionExpression.parameters, ); super.visitFunctionDeclaration(node); @@ -246,7 +246,7 @@ class FfiVerifier extends RecursiveAstVisitor { _checkFfiNative( errorNode: node, annotations: node.metadata, - declarationElement: node.declaredElement as ExecutableElement, + declarationElement: node.declaredElement2!, formalParameterList: node.parameters); super.visitMethodDeclaration(node); } diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart index 8d222fa05bd98..ad153478a990c 100644 --- a/pkg/analyzer/lib/src/generated/resolver.dart +++ b/pkg/analyzer/lib/src/generated/resolver.dart @@ -741,22 +741,22 @@ class ResolverVisitor extends ThrowingAstVisitor node is TopLevelVariableDeclaration; } - void forClassElement(ClassElement parentElement) { + void forClassElement(InterfaceElement parentElement) { enclosingClass = parentElement; } if (parent is ClassDeclaration) { - forClassElement(parent.declaredElement!); + forClassElement(parent.declaredElement2!); return true; } if (parent is ExtensionDeclaration) { - enclosingExtension = parent.declaredElement!; + enclosingExtension = parent.declaredElement2!; return true; } if (parent is MixinDeclaration) { - forClassElement(parent.declaredElement!); + forClassElement(parent.declaredElement2!); return true; } @@ -1142,7 +1142,7 @@ class ResolverVisitor extends ThrowingAstVisitor // var outerType = enclosingClass; try { - enclosingClass = node.declaredElement; + enclosingClass = node.declaredElement2; checkUnreachableNode(node); node.visitChildren(this); elementResolver.visitClassDeclaration(node); @@ -1238,11 +1238,11 @@ class ResolverVisitor extends ThrowingAstVisitor flowAnalysis.executableDeclaration_enter(node, node.parameters, isClosure: false); - var returnType = node.declaredElement!.type.returnType; + var returnType = node.declaredElement2!.type.returnType; var outerFunction = _enclosingFunction; try { - _enclosingFunction = node.declaredElement; + _enclosingFunction = node.declaredElement2; assert(_thisType == null); _setupThisType(); checkUnreachableNode(node); @@ -1400,7 +1400,7 @@ class ResolverVisitor extends ThrowingAstVisitor node.metadata.accept(this); checkUnreachableNode(node); - var element = node.declaredElement as ConstFieldElementImpl; + var element = node.declaredElement2 as ConstFieldElementImpl; var initializer = element.constantInitializer; if (initializer is InstanceCreationExpression) { var constructorName = initializer.constructorName; @@ -1479,7 +1479,7 @@ class ResolverVisitor extends ThrowingAstVisitor // var outerType = enclosingClass; try { - enclosingClass = node.declaredElement; + enclosingClass = node.declaredElement2; checkUnreachableNode(node); node.visitChildren(this); elementResolver.visitEnumDeclaration(node); @@ -1538,7 +1538,7 @@ class ResolverVisitor extends ThrowingAstVisitor void visitExtensionDeclaration(ExtensionDeclaration node) { var outerExtension = enclosingExtension; try { - enclosingExtension = node.declaredElement!; + enclosingExtension = node.declaredElement2!; checkUnreachableNode(node); node.visitChildren(this); elementResolver.visitExtensionDeclaration(node); @@ -1632,11 +1632,11 @@ class ResolverVisitor extends ThrowingAstVisitor isClosure: isLocal, ); - var functionType = node.declaredElement!.type; + var functionType = node.declaredElement2!.type; var outerFunction = _enclosingFunction; try { - _enclosingFunction = node.declaredElement; + _enclosingFunction = node.declaredElement2; checkUnreachableNode(node); node.documentationComment?.accept(this); node.metadata.accept(this); @@ -1935,11 +1935,11 @@ class ResolverVisitor extends ThrowingAstVisitor flowAnalysis.executableDeclaration_enter(node, node.parameters, isClosure: false); - DartType returnType = node.declaredElement!.returnType; + DartType returnType = node.declaredElement2!.returnType; var outerFunction = _enclosingFunction; try { - _enclosingFunction = node.declaredElement; + _enclosingFunction = node.declaredElement2; assert(_thisType == null); _setupThisType(); checkUnreachableNode(node); @@ -2015,7 +2015,7 @@ class ResolverVisitor extends ThrowingAstVisitor // var outerType = enclosingClass; try { - enclosingClass = node.declaredElement!; + enclosingClass = node.declaredElement2!; checkUnreachableNode(node); node.visitChildren(this); elementResolver.visitMixinDeclaration(node); @@ -2494,7 +2494,7 @@ class ResolverVisitor extends ThrowingAstVisitor void visitVariableDeclaration(VariableDeclaration node) { _variableDeclarationResolver.resolve(node as VariableDeclarationImpl); - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; var initializer = node.initializer; var parent = node.parent as VariableDeclarationList; @@ -2558,7 +2558,7 @@ class ResolverVisitor extends ThrowingAstVisitor } void _checkTopLevelCycle(VariableDeclaration node) { - var element = node.declaredElement; + var element = node.declaredElement2; if (element is! PropertyInducingElementImpl) { return; } @@ -3018,7 +3018,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { void visitClassDeclaration(ClassDeclaration node) { Scope outerScope = nameScope; try { - ClassElement element = node.declaredElement!; + ClassElement element = node.declaredElement2!; node.metadata.accept(this); nameScope = TypeParameterScope( @@ -3028,7 +3028,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { _setNodeNameScope(node, nameScope); visitClassDeclarationInScope(node); - nameScope = ClassScope(nameScope, element); + nameScope = InterfaceScope(nameScope, element); visitClassMembersInScope(node); } finally { nameScope = outerScope; @@ -3053,8 +3053,8 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { node.metadata.accept(this); Scope outerScope = nameScope; try { - ClassElement element = node.declaredElement!; - nameScope = ClassScope( + ClassElement element = node.declaredElement2!; + nameScope = InterfaceScope( TypeParameterScope(nameScope, element.typeParameters), element, ); @@ -3086,7 +3086,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { (node.body as FunctionBodyImpl).localVariableInfo = _localVariableInfo; Scope outerScope = nameScope; try { - ConstructorElement element = node.declaredElement!; + ConstructorElement element = node.declaredElement2!; node.metadata.accept(this); node.returnType.accept(this); @@ -3126,7 +3126,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { @override void visitDeclaredIdentifier(DeclaredIdentifier node) { - _define(node.declaredElement!); + _define(node.declaredElement2!); super.visitDeclaredIdentifier(node); } @@ -3150,7 +3150,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { void visitEnumDeclaration(EnumDeclaration node) { Scope outerScope = nameScope; try { - ClassElement element = node.declaredElement!; + final element = node.declaredElement2!; node.metadata.accept(this); nameScope = TypeParameterScope( @@ -3160,7 +3160,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { _setNodeNameScope(node, nameScope); visitEnumDeclarationInScope(node); - nameScope = ClassScope(nameScope, element); + nameScope = InterfaceScope(nameScope, element); visitEnumMembersInScope(node); } finally { nameScope = outerScope; @@ -3189,7 +3189,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { void visitExtensionDeclaration(ExtensionDeclaration node) { Scope outerScope = nameScope; try { - ExtensionElement element = node.declaredElement!; + ExtensionElement element = node.declaredElement2!; node.metadata.accept(this); nameScope = TypeParameterScope( @@ -3262,7 +3262,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { parent.declaredElement!.parameters, ); } else if (parent is FunctionTypeAlias) { - var aliasedElement = parent.declaredElement!.aliasedElement; + var aliasedElement = parent.declaredElement2!.aliasedElement; var functionElement = aliasedElement as GenericFunctionTypeElement; nameScope = FormalParameterScope( nameScope, @@ -3271,7 +3271,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { } else if (parent is MethodDeclaration) { nameScope = FormalParameterScope( nameScope, - parent.declaredElement!.parameters, + parent.declaredElement2!.parameters, ); } } @@ -3309,10 +3309,10 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { Scope outerScope = nameScope; try { _enclosingClosure = node.parent is FunctionDeclarationStatement - ? node.declaredElement + ? node.declaredElement2 : null; node.metadata.accept(this); - var element = node.declaredElement!; + var element = node.declaredElement2!; nameScope = TypeParameterScope( nameScope, element.typeParameters, @@ -3366,7 +3366,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { node.metadata.accept(this); Scope outerScope = nameScope; try { - var element = node.declaredElement!; + var element = node.declaredElement2!; nameScope = TypeParameterScope(nameScope, element.typeParameters); visitFunctionTypeAliasInScope(node); } finally { @@ -3440,7 +3440,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { node.metadata.accept(this); Scope outerScope = nameScope; try { - var element = node.declaredElement as TypeAliasElement; + var element = node.declaredElement2 as TypeAliasElement; nameScope = TypeParameterScope(nameScope, element.typeParameters); _setNodeNameScope(node, nameScope); visitGenericTypeAliasInScope(node); @@ -3488,7 +3488,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { node.metadata.accept(this); Scope outerScope = nameScope; try { - ExecutableElement element = node.declaredElement!; + ExecutableElement element = node.declaredElement2!; nameScope = TypeParameterScope( nameScope, element.typeParameters, @@ -3530,14 +3530,14 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { void visitMixinDeclaration(MixinDeclaration node) { Scope outerScope = nameScope; try { - ClassElement element = node.declaredElement!; + final element = node.declaredElement2!; node.metadata.accept(this); nameScope = TypeParameterScope(nameScope, element.typeParameters); _setNodeNameScope(node, nameScope); visitMixinDeclarationInScope(node); - nameScope = ClassScope(nameScope, element); + nameScope = InterfaceScope(nameScope, element); visitMixinMembersInScope(node); } finally { nameScope = outerScope; @@ -3688,7 +3688,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor { super.visitVariableDeclaration(node); if (node.parent!.parent is ForParts) { - _define(node.declaredElement!); + _define(node.declaredElement2!); } } diff --git a/pkg/analyzer/lib/src/lint/linter.dart b/pkg/analyzer/lib/src/lint/linter.dart index 1471a8b713b10..687da3aee0cb5 100644 --- a/pkg/analyzer/lib/src/lint/linter.dart +++ b/pkg/analyzer/lib/src/lint/linter.dart @@ -336,7 +336,7 @@ class LinterContextImpl implements LinterContext { @override bool canBeConstConstructor(covariant ConstructorDeclarationImpl node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; final classElement = element.enclosingElement3; if (classElement is ClassElement && classElement.hasNonFinalField) { diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart index e4577c859ed26..320fc05bed98e 100644 --- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart +++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart @@ -858,7 +858,7 @@ class AstBinaryWriter extends ThrowingAstVisitor { f(); } else { var elements = node.typeParameters - .map((typeParameter) => typeParameter.declaredElement!) + .map((typeParameter) => typeParameter.declaredElement2!) .toList(); _sink.localElements.withElements(elements, () { f(); diff --git a/pkg/analyzer/lib/src/summary2/default_types_builder.dart b/pkg/analyzer/lib/src/summary2/default_types_builder.dart index 4ddea7898a463..83fbd83e9b891 100644 --- a/pkg/analyzer/lib/src/summary2/default_types_builder.dart +++ b/pkg/analyzer/lib/src/summary2/default_types_builder.dart @@ -25,32 +25,32 @@ class DefaultTypesBuilder { void build(List nodes) { for (var node in nodes) { if (node is ClassDeclaration) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _breakSelfCycles(node.typeParameters); _breakRawTypeCycles(element, node.typeParameters); _computeBounds(element, node.typeParameters); } else if (node is ClassTypeAlias) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _breakSelfCycles(node.typeParameters); _breakRawTypeCycles(element, node.typeParameters); _computeBounds(element, node.typeParameters); } else if (node is EnumDeclaration) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _breakSelfCycles(node.typeParameters); _breakRawTypeCycles(element, node.typeParameters); _computeBounds(element, node.typeParameters); } else if (node is FunctionTypeAlias) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _breakSelfCycles(node.typeParameters); _breakRawTypeCycles(element, node.typeParameters); _computeBounds(element, node.typeParameters); } else if (node is GenericTypeAlias) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _breakSelfCycles(node.typeParameters); _breakRawTypeCycles(element, node.typeParameters); _computeBounds(element, node.typeParameters); } else if (node is MixinDeclaration) { - var element = node.declaredElement!; + var element = node.declaredElement2!; _breakSelfCycles(node.typeParameters); _breakRawTypeCycles(element, node.typeParameters); _computeBounds(element, node.typeParameters); @@ -152,7 +152,7 @@ class DefaultTypesBuilder { if (parameterList == null) return; for (var parameter in parameterList.typeParameters) { - var element = parameter.declaredElement as TypeParameterElementImpl; + var element = parameter.declaredElement2 as TypeParameterElementImpl; var defaultType = element.defaultType; if (defaultType is TypeBuilder) { var builtType = defaultType.build(); @@ -182,7 +182,7 @@ class DefaultTypesBuilder { var bounds = []; for (int i = 0; i < length; i++) { var node = nodes[i]; - elements.add(node.declaredElement as TypeParameterElementImpl); + elements.add(node.declaredElement2 as TypeParameterElementImpl); bounds.add(node.bound?.type ?? dynamicType); } @@ -228,7 +228,7 @@ class DefaultTypesBuilder { // Set computed TypeBuilder(s) as default types. for (var i = 0; i < length; i++) { - var element = nodes[i].declaredElement as TypeParameterElementImpl; + var element = nodes[i].declaredElement2 as TypeParameterElementImpl; element.defaultType = bounds[i]; } } diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart index dc7f62566e4be..574fcf2140b24 100644 --- a/pkg/analyzer/lib/src/summary2/element_builder.dart +++ b/pkg/analyzer/lib/src/summary2/element_builder.dart @@ -98,7 +98,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addClass(name, element); @@ -132,7 +132,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addClass(name, element); @@ -178,7 +178,7 @@ class ElementBuilder extends ThrowingAstVisitor { element.constantInitializers = node.initializers; } - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addConstructor(element); @@ -205,7 +205,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addEnum(name, element); @@ -406,7 +406,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var refName = name ?? '${_nextUnnamedExtensionId++}'; @@ -478,7 +478,7 @@ class ElementBuilder extends ThrowingAstVisitor { _enclosingContext.addNonSyntheticField(element); _linker.elementNodes[element] = variable; - variable.declaredElement = element; + variable.declaredElement2 = element; } _buildType(node.fields.type); } @@ -585,7 +585,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(executableElement, node); _setDocumentation(executableElement, node); - node.declaredElement = executableElement; + node.declaredElement2 = executableElement; _linker.elementNodes[executableElement] = node; _buildExecutableElementChildren( @@ -615,7 +615,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addTypeAlias(name, element); @@ -723,7 +723,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addTypeAlias(name, element); @@ -836,7 +836,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(executableElement, node); _setDocumentation(executableElement, node); - node.declaredElement = executableElement; + node.declaredElement2 = executableElement; _linker.elementNodes[executableElement] = node; _buildExecutableElementChildren( @@ -859,7 +859,7 @@ class ElementBuilder extends ThrowingAstVisitor { _setCodeRange(element, node); _setDocumentation(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; var reference = _enclosingContext.addMixin(name, element); @@ -1038,7 +1038,7 @@ class ElementBuilder extends ThrowingAstVisitor { _linker.elementNodes[element] = variable; _enclosingContext.addTopLevelVariable(name, element); - variable.declaredElement = element; + variable.declaredElement2 = element; var getter = element.getter; if (getter is PropertyAccessorElementImpl) { @@ -1070,7 +1070,7 @@ class ElementBuilder extends ThrowingAstVisitor { element.metadata = _buildAnnotations(node.metadata); _setCodeRange(element, node); - node.declaredElement = element; + node.declaredElement2 = element; _linker.elementNodes[element] = node; _enclosingContext.addTypeParameter(name, element); @@ -1092,7 +1092,7 @@ class ElementBuilder extends ThrowingAstVisitor { } void _buildClass(ClassDeclaration node) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; var hasConstConstructor = node.members.any((e) { return e is ConstructorDeclaration && e.constKeyword != null; }); @@ -1137,7 +1137,7 @@ class ElementBuilder extends ThrowingAstVisitor { } void _buildMixin(MixinDeclaration node) { - var element = node.declaredElement as MixinElementImpl; + var element = node.declaredElement2 as MixinElementImpl; var hasConstConstructor = node.members.any((e) { return e is ConstructorDeclaration && e.constKeyword != null; }); diff --git a/pkg/analyzer/lib/src/summary2/function_type_builder.dart b/pkg/analyzer/lib/src/summary2/function_type_builder.dart index 8ecabb3c078f6..0a07a1c94e40e 100644 --- a/pkg/analyzer/lib/src/summary2/function_type_builder.dart +++ b/pkg/analyzer/lib/src/summary2/function_type_builder.dart @@ -208,6 +208,6 @@ class FunctionTypeBuilder extends TypeBuilder { TypeParameterList? node, ) { if (node == null) return const []; - return node.typeParameters.map((n) => n.declaredElement!).toList(); + return node.typeParameters.map((n) => n.declaredElement2!).toList(); } } diff --git a/pkg/analyzer/lib/src/summary2/library_builder.dart b/pkg/analyzer/lib/src/summary2/library_builder.dart index 008ff70b676dc..ea65c0fd6b400 100644 --- a/pkg/analyzer/lib/src/summary2/library_builder.dart +++ b/pkg/analyzer/lib/src/summary2/library_builder.dart @@ -212,7 +212,7 @@ class LibraryBuilder { executable.body.accept(collector); } } - var element = declaration.declaredElement as MixinElementImpl; + var element = declaration.declaredElement2 as MixinElementImpl; element.superInvokedNames = names.toList(); } } diff --git a/pkg/analyzer/lib/src/summary2/macro_declarations.dart b/pkg/analyzer/lib/src/summary2/macro_declarations.dart index 57302610011d8..d495de4e7bc0e 100644 --- a/pkg/analyzer/lib/src/summary2/macro_declarations.dart +++ b/pkg/analyzer/lib/src/summary2/macro_declarations.dart @@ -52,7 +52,7 @@ class DeclarationBuilder { } for (final entry in fromNode._classMap.entries) { - final element = entry.key.declaredElement as ClassElement; + final element = entry.key.declaredElement2!; final declaration = entry.value; declaration.element = element; fromElement._classMap[element] = declaration; @@ -214,7 +214,7 @@ class DeclarationBuilderFromNode { assert(!_classMap.containsKey(node)); return IntrospectableClassDeclarationImpl._( id: macro.RemoteInstance.uniqueId, - identifier: _declaredIdentifier(node.name2, node.declaredElement!), + identifier: _declaredIdentifier(node.name2, node.declaredElement2!), typeParameters: _typeParameters(node.typeParameters), interfaces: _typeAnnotations(node.implementsClause?.interfaces), isAbstract: node.abstractKeyword != null, @@ -290,7 +290,7 @@ class DeclarationBuilderFromNode { ) { return macro.TypeParameterDeclarationImpl( id: macro.RemoteInstance.uniqueId, - identifier: _declaredIdentifier(node.name2, node.declaredElement!), + identifier: _declaredIdentifier(node.name2, node.declaredElement2!), bound: node.bound.mapOrNull(_typeAnnotation), ); } diff --git a/pkg/analyzer/lib/src/summary2/named_type_builder.dart b/pkg/analyzer/lib/src/summary2/named_type_builder.dart index 184476e6e653c..507f59a671abc 100644 --- a/pkg/analyzer/lib/src/summary2/named_type_builder.dart +++ b/pkg/analyzer/lib/src/summary2/named_type_builder.dart @@ -319,7 +319,7 @@ class NamedTypeBuilder extends TypeBuilder { static List _typeParameters(TypeParameterList? node) { if (node != null) { return node.typeParameters - .map((p) => p.declaredElement!) + .map((p) => p.declaredElement2!) .toList(); } else { return const []; diff --git a/pkg/analyzer/lib/src/summary2/reference_resolver.dart b/pkg/analyzer/lib/src/summary2/reference_resolver.dart index 93d557866f55a..23b407b1b6ea6 100644 --- a/pkg/analyzer/lib/src/summary2/reference_resolver.dart +++ b/pkg/analyzer/lib/src/summary2/reference_resolver.dart @@ -52,7 +52,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitClassDeclaration(ClassDeclaration node) { var outerScope = scope; - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; scope = TypeParameterScope(scope, element.typeParameters); @@ -61,7 +61,7 @@ class ReferenceResolver extends ThrowingAstVisitor { node.implementsClause?.accept(this); node.withClause?.accept(this); - scope = ClassScope(scope, element); + scope = InterfaceScope(scope, element); LinkingNodeContext(node, scope); node.members.accept(this); @@ -74,7 +74,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitClassTypeAlias(ClassTypeAlias node) { var outerScope = scope; - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; scope = TypeParameterScope(scope, element.typeParameters); LinkingNodeContext(node, scope); @@ -98,7 +98,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitConstructorDeclaration(ConstructorDeclaration node) { var outerScope = scope; - var element = node.declaredElement as ConstructorElementImpl; + var element = node.declaredElement2 as ConstructorElementImpl; scope = TypeParameterScope(scope, element.typeParameters); LinkingNodeContext(node, scope); @@ -117,7 +117,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitEnumDeclaration(EnumDeclaration node) { var outerScope = scope; - var element = node.declaredElement as EnumElementImpl; + var element = node.declaredElement2 as EnumElementImpl; scope = TypeParameterScope(scope, element.typeParameters); @@ -125,7 +125,7 @@ class ReferenceResolver extends ThrowingAstVisitor { node.implementsClause?.accept(this); node.withClause?.accept(this); - scope = ClassScope(scope, element); + scope = InterfaceScope(scope, element); LinkingNodeContext(node, scope); node.members.accept(this); @@ -146,7 +146,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitExtensionDeclaration(ExtensionDeclaration node) { var outerScope = scope; - var element = node.declaredElement as ExtensionElementImpl; + var element = node.declaredElement2 as ExtensionElementImpl; scope = TypeParameterScope(scope, element.typeParameters); @@ -192,7 +192,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitFunctionDeclaration(FunctionDeclaration node) { var outerScope = scope; - var element = node.declaredElement as ExecutableElementImpl; + var element = node.declaredElement2 as ExecutableElementImpl; scope = TypeParameterScope(outerScope, element.typeParameters); LinkingNodeContext(node, scope); @@ -214,7 +214,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitFunctionTypeAlias(FunctionTypeAlias node) { var outerScope = scope; - var element = node.declaredElement as TypeAliasElementImpl; + var element = node.declaredElement2 as TypeAliasElementImpl; scope = TypeParameterScope(outerScope, element.typeParameters); @@ -267,7 +267,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitGenericTypeAlias(GenericTypeAlias node) { var outerScope = scope; - var element = node.declaredElement as TypeAliasElementImpl; + var element = node.declaredElement2 as TypeAliasElementImpl; scope = TypeParameterScope(outerScope, element.typeParameters); @@ -294,7 +294,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitMethodDeclaration(MethodDeclaration node) { var outerScope = scope; - var element = node.declaredElement as ExecutableElementImpl; + var element = node.declaredElement2 as ExecutableElementImpl; scope = TypeParameterScope(scope, element.typeParameters); LinkingNodeContext(node, scope); @@ -311,7 +311,7 @@ class ReferenceResolver extends ThrowingAstVisitor { void visitMixinDeclaration(MixinDeclaration node) { var outerScope = scope; - var element = node.declaredElement as MixinElementImpl; + var element = node.declaredElement2 as MixinElementImpl; scope = TypeParameterScope(scope, element.typeParameters); @@ -319,7 +319,7 @@ class ReferenceResolver extends ThrowingAstVisitor { node.onClause?.accept(this); node.implementsClause?.accept(this); - scope = ClassScope(scope, element); + scope = InterfaceScope(scope, element); LinkingNodeContext(node, scope); node.members.accept(this); @@ -424,7 +424,7 @@ class ReferenceResolver extends ThrowingAstVisitor { var bound = node.bound; if (bound != null) { bound.accept(this); - var element = node.declaredElement as TypeParameterElementImpl; + var element = node.declaredElement2 as TypeParameterElementImpl; element.bound = bound.type; } } diff --git a/pkg/analyzer/lib/src/summary2/simply_bounded.dart b/pkg/analyzer/lib/src/summary2/simply_bounded.dart index 1bfce1f945634..d77ddc773d77c 100644 --- a/pkg/analyzer/lib/src/summary2/simply_bounded.dart +++ b/pkg/analyzer/lib/src/summary2/simply_bounded.dart @@ -40,22 +40,22 @@ void computeSimplyBounded(Linker linker) { walker.walk(node); var node2 = node._node; if (node2 is ClassDeclaration) { - var element = node2.declaredElement as ClassElementImpl; + var element = node2.declaredElement2 as ClassElementImpl; element.isSimplyBounded = node.isSimplyBounded; } else if (node2 is ClassTypeAlias) { - var element = node2.declaredElement as ClassElementImpl; + var element = node2.declaredElement2 as ClassElementImpl; element.isSimplyBounded = node.isSimplyBounded; } else if (node2 is EnumDeclaration) { - var element = node2.declaredElement as EnumElementImpl; + var element = node2.declaredElement2 as EnumElementImpl; element.isSimplyBounded = node.isSimplyBounded; } else if (node2 is GenericTypeAlias) { - var element = node2.declaredElement as TypeAliasElementImpl; + var element = node2.declaredElement2 as TypeAliasElementImpl; element.isSimplyBounded = node.isSimplyBounded; } else if (node2 is FunctionTypeAlias) { - var element = node2.declaredElement as TypeAliasElementImpl; + var element = node2.declaredElement2 as TypeAliasElementImpl; element.isSimplyBounded = node.isSimplyBounded; } else if (node2 is MixinDeclaration) { - var element = node2.declaredElement as MixinElementImpl; + var element = node2.declaredElement2 as MixinElementImpl; element.isSimplyBounded = node.isSimplyBounded; } else { throw UnimplementedError('${node2.runtimeType}'); diff --git a/pkg/analyzer/lib/src/summary2/type_alias.dart b/pkg/analyzer/lib/src/summary2/type_alias.dart index 2c241ad24af29..4a2779e54d14b 100644 --- a/pkg/analyzer/lib/src/summary2/type_alias.dart +++ b/pkg/analyzer/lib/src/summary2/type_alias.dart @@ -15,12 +15,12 @@ class TypeAliasSelfReferenceFinder { if (node is FunctionTypeAlias) { var finder = _Finder(linker, node); finder.functionTypeAlias(node); - var element = node.declaredElement as TypeAliasElementImpl; + var element = node.declaredElement2 as TypeAliasElementImpl; element.hasSelfReference = finder.hasSelfReference; } else if (node is GenericTypeAlias) { var finder = _Finder(linker, node); finder.genericTypeAlias(node); - var element = node.declaredElement as TypeAliasElementImpl; + var element = node.declaredElement2 as TypeAliasElementImpl; element.hasSelfReference = finder.hasSelfReference; } } diff --git a/pkg/analyzer/lib/src/summary2/types_builder.dart b/pkg/analyzer/lib/src/summary2/types_builder.dart index 750e3427fc057..b573cf4cd24f0 100644 --- a/pkg/analyzer/lib/src/summary2/types_builder.dart +++ b/pkg/analyzer/lib/src/summary2/types_builder.dart @@ -117,7 +117,7 @@ class TypesBuilder { } void _classDeclaration(ClassDeclaration node) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; var extendsClause = node.extendsClause; if (extendsClause != null) { @@ -143,7 +143,7 @@ class TypesBuilder { } void _classTypeAlias(ClassTypeAlias node) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; var superType = node.superclass.type; if (superType is InterfaceType && _isInterfaceTypeInterface(superType)) { @@ -181,7 +181,7 @@ class TypesBuilder { returnType = _dynamicType; } } - var element = node.declaredElement as ExecutableElementImpl; + var element = node.declaredElement2 as ExecutableElementImpl; element.returnType = returnType; } else if (node is FunctionTypeAlias) { _functionTypeAlias(node); @@ -200,7 +200,7 @@ class TypesBuilder { returnType = _dynamicType; } } - var element = node.declaredElement as ExecutableElementImpl; + var element = node.declaredElement2 as ExecutableElementImpl; element.returnType = returnType; } else if (node is MixinDeclaration) { _mixinDeclaration(node); @@ -213,7 +213,7 @@ class TypesBuilder { var type = node.type?.type; if (type != null) { for (var variable in node.variables) { - (variable.declaredElement as VariableElementImpl).type = type; + (variable.declaredElement2 as VariableElementImpl).type = type; } } } else { @@ -222,7 +222,7 @@ class TypesBuilder { } void _enumDeclaration(EnumDeclaration node) { - var element = node.declaredElement as EnumElementImpl; + var element = node.declaredElement2 as EnumElementImpl; element.mixins = _toInterfaceTypeList( node.withClause?.mixinTypes, @@ -234,7 +234,7 @@ class TypesBuilder { } void _extensionDeclaration(ExtensionDeclaration node) { - var element = node.declaredElement as ExtensionElementImpl; + var element = node.declaredElement2 as ExtensionElementImpl; element.extendedType = node.extendedType.typeOrThrow; } @@ -261,7 +261,7 @@ class TypesBuilder { } void _functionTypeAlias(FunctionTypeAlias node) { - var element = node.declaredElement as TypeAliasElementImpl; + var element = node.declaredElement2 as TypeAliasElementImpl; var function = element.aliasedElement as GenericFunctionTypeElementImpl; function.returnType = node.returnType?.type ?? _dynamicType; element.aliasedType = function.type; @@ -279,7 +279,7 @@ class TypesBuilder { } void _genericTypeAlias(GenericTypeAlias node) { - var element = node.declaredElement as TypeAliasElementImpl; + var element = node.declaredElement2 as TypeAliasElementImpl; var featureSet = element.library.featureSet; var typeNode = node.type; @@ -298,7 +298,7 @@ class TypesBuilder { } void _mixinDeclaration(MixinDeclaration node) { - var element = node.declaredElement as MixinElementImpl; + var element = node.declaredElement2 as MixinElementImpl; var constraints = _toInterfaceTypeList( node.onClause?.superclassConstraints, @@ -347,7 +347,7 @@ class TypesBuilder { } return node.typeParameters - .map((p) => p.declaredElement!) + .map((p) => p.declaredElement2!) .toList(); } @@ -518,7 +518,8 @@ class _MixinsInference { void perform(List declarations) { for (var node in declarations) { if (node is ClassDeclaration || node is ClassTypeAlias) { - var element = (node as Declaration).declaredElement as ClassElementImpl; + var element = + (node as Declaration).declaredElement2 as ClassElementImpl; element.mixinInferenceCallback = _callbackWhenRecursion; } } @@ -568,13 +569,13 @@ class _MixinsInference { void _inferDeclaration(AstNode node) { if (node is ClassDeclaration) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; _infer(element, node.withClause); } else if (node is ClassTypeAlias) { - var element = node.declaredElement as ClassElementImpl; + var element = node.declaredElement2 as ClassElementImpl; _infer(element, node.withClause); } else if (node is EnumDeclaration) { - var element = node.declaredElement as EnumElementImpl; + var element = node.declaredElement2 as EnumElementImpl; _infer(element, node.withClause); } } @@ -586,10 +587,10 @@ class _MixinsInference { void _resetHierarchies(List declarations) { for (var declaration in declarations) { if (declaration is ClassDeclaration) { - var element = declaration.declaredElement as ClassElementImpl; + var element = declaration.declaredElement2 as ClassElementImpl; element.library.session.classHierarchy.remove(element); } else if (declaration is MixinDeclaration) { - var element = declaration.declaredElement as MixinElementImpl; + var element = declaration.declaredElement2 as MixinElementImpl; element.library.session.classHierarchy.remove(element); } } diff --git a/pkg/analyzer/lib/src/summary2/variance_builder.dart b/pkg/analyzer/lib/src/summary2/variance_builder.dart index fad5a0e9b7379..d6cb860e5920f 100644 --- a/pkg/analyzer/lib/src/summary2/variance_builder.dart +++ b/pkg/analyzer/lib/src/summary2/variance_builder.dart @@ -164,7 +164,7 @@ class VarianceBuilder { try { for (var parameter in parameterList.typeParameters) { var variance = _computeFunctionType( - parameter.declaredElement!, + parameter.declaredElement2!, returnType: node.returnType?.type, typeFormals: null, parameters: FunctionTypeBuilder.getParameters( @@ -210,7 +210,7 @@ class VarianceBuilder { _visit.add(node); try { for (var parameter in parameterList.typeParameters) { - var variance = _compute(parameter.declaredElement!, type); + var variance = _compute(parameter.declaredElement2!, type); _setVariance(parameter, variance); } } finally { @@ -247,7 +247,7 @@ class VarianceBuilder { } static void _setVariance(TypeParameter node, Variance variance) { - var element = node.declaredElement as TypeParameterElementImpl; + var element = node.declaredElement2 as TypeParameterElementImpl; element.variance = variance; } } diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart index a5dd06b27aa19..d01f62f262567 100644 --- a/pkg/analyzer/lib/src/task/strong/checker.dart +++ b/pkg/analyzer/lib/src/task/strong/checker.dart @@ -203,7 +203,7 @@ class CodeChecker extends RecursiveAstVisitor { _visitForEachParts( node, node.loopVariable.name, - node.loopVariable.declaredElement, + node.loopVariable.declaredElement2, ); node.visitChildren(this); } @@ -564,7 +564,7 @@ class CodeChecker extends RecursiveAstVisitor { FunctionType functionType; var parent = body.parent; if (parent is Declaration) { - functionType = _elementType(parent.declaredElement!) as FunctionType; + functionType = _elementType(parent.declaredElement2!) as FunctionType; } else { assert(parent is FunctionExpression); functionType = (parent as FunctionExpression).staticType as FunctionType; diff --git a/pkg/analyzer/lib/src/test_utilities/find_element.dart b/pkg/analyzer/lib/src/test_utilities/find_element.dart index aa8aef93bd5c8..b959695d58dd4 100644 --- a/pkg/analyzer/lib/src/test_utilities/find_element.dart +++ b/pkg/analyzer/lib/src/test_utilities/find_element.dart @@ -104,7 +104,7 @@ class FindElement extends _FindElementBase { unit.accept(FunctionAstVisitor( functionDeclarationStatement: (node) { - var element = node.functionDeclaration.declaredElement; + var element = node.functionDeclaration.declaredElement2; if (element is FunctionElement && element.name == name) { if (result != null) { throw StateError('Not unique: $name'); @@ -137,10 +137,10 @@ class FindElement extends _FindElementBase { updateResult(node.declaredElement!); }, declaredIdentifier: (node) { - updateResult(node.declaredElement!); + updateResult(node.declaredElement2!); }, variableDeclaration: (node) { - updateResult(node.declaredElement!); + updateResult(node.declaredElement2!); }, )); diff --git a/pkg/analyzer/lib/src/util/ast_data_extractor.dart b/pkg/analyzer/lib/src/util/ast_data_extractor.dart index 199f082f1e5cb..46ac78ba45039 100644 --- a/pkg/analyzer/lib/src/util/ast_data_extractor.dart +++ b/pkg/analyzer/lib/src/util/ast_data_extractor.dart @@ -95,7 +95,7 @@ abstract class AstDataExtractor extends GeneralizingAstVisitor T? computeNodeValue(Id id, AstNode node); Id createClassId(Declaration node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; return ClassId(element.name!); } @@ -109,7 +109,7 @@ abstract class AstDataExtractor extends GeneralizingAstVisitor } Id createMemberId(Declaration node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; return computeMemberId(element); } diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart index 6205e1df14cfd..74459f0ca78dd 100644 --- a/pkg/analyzer/test/generated/resolver_test_case.dart +++ b/pkg/analyzer/test/generated/resolver_test_case.dart @@ -94,7 +94,7 @@ class ResolutionVerifier extends RecursiveAstVisitor { @override void visitFunctionDeclaration(FunctionDeclaration node) { node.visitChildren(this); - if (node.declaredElement is LibraryElement) { + if (node.declaredElement2 is LibraryElement) { _wrongTypedNodes.add(node); } } diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart index 9d90aad3d1d18..d9bf5531499cc 100644 --- a/pkg/analyzer/test/generated/strong_mode_test.dart +++ b/pkg/analyzer/test/generated/strong_mode_test.dart @@ -223,7 +223,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest return exp; } - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; CascadeExpression cascade = fetch(0); _isInstantiationOf(_hasElement(elementA))([_isInt])(cascade.typeOrThrow); @@ -369,8 +369,8 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest var body = constructor.body as BlockFunctionBody; var stmt = body.block.statements[0] as ReturnStatement; var exp = stmt.expression as InstanceCreationExpression; - ClassElement elementB = AstFinder.getClass(unit, "B").declaredElement!; - ClassElement elementA = AstFinder.getClass(unit, "A").declaredElement!; + ClassElement elementB = AstFinder.getClass(unit, "B").declaredElement2!; + ClassElement elementA = AstFinder.getClass(unit, "A").declaredElement2!; final type = exp.constructorName.type.typeOrThrow as InterfaceType; expect(type.element2, elementB); _isInstantiationOf(_hasElement(elementB))([ @@ -1118,7 +1118,7 @@ void test() { error(HintCode.UNUSED_LOCAL_VARIABLE, 347, 2), ]); - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; List statements = AstFinder.getStatementsInTopLevelFunction(unit, "test"); void check(int i) { @@ -1149,7 +1149,7 @@ void test() { ]); DartType cType = findElement.localVar('c').type; - Element elementC = AstFinder.getClass(unit, "C").declaredElement!; + Element elementC = AstFinder.getClass(unit, "C").declaredElement2!; _isInstantiationOf(_hasElement(elementC))([_isDynamic])(cType); } @@ -1426,7 +1426,7 @@ test() { as VariableDeclarationStatement) .variables .variables[0]; - _isDynamic(h.declaredElement!.type); + _isDynamic(h.declaredElement2!.type); var fCall = h.initializer as MethodInvocation; assertInvokeType(fCall, 'dynamic Function(dynamic Function(dynamic))'); var g = fCall.argumentList.arguments[0]; @@ -1480,9 +1480,9 @@ num test(Iterable values) => values.fold(values.first as num, max); VariableDeclaration mapB = AstFinder.getFieldInClass(unit, "B", "map"); MethodDeclaration mapC = AstFinder.getMethodInClass(unit, "C", "map"); - assertMapOfIntToListOfInt(mapB.declaredElement!.type as InterfaceType); + assertMapOfIntToListOfInt(mapB.declaredElement2!.type as InterfaceType); assertMapOfIntToListOfInt( - mapC.declaredElement!.returnType as InterfaceType); + mapC.declaredElement2!.returnType as InterfaceType); var mapLiteralB = mapB.initializer as SetOrMapLiteral; var mapLiteralC = @@ -1667,12 +1667,12 @@ num test(Iterable values) => values.fold(values.first as num, max); void hasType(Asserter assertion, Expression exp) => assertion(exp.typeOrThrow); - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; - Element elementB = AstFinder.getClass(unit, "B").declaredElement!; - Element elementC = AstFinder.getClass(unit, "C").declaredElement!; - Element elementD = AstFinder.getClass(unit, "D").declaredElement!; - Element elementE = AstFinder.getClass(unit, "E").declaredElement!; - Element elementF = AstFinder.getClass(unit, "F").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; + Element elementB = AstFinder.getClass(unit, "B").declaredElement2!; + Element elementC = AstFinder.getClass(unit, "C").declaredElement2!; + Element elementD = AstFinder.getClass(unit, "D").declaredElement2!; + Element elementE = AstFinder.getClass(unit, "E").declaredElement2!; + Element elementF = AstFinder.getClass(unit, "F").declaredElement2!; AsserterBuilder>, DartType> assertAOf = _isInstantiationOf(_hasElement(elementA)); @@ -2178,7 +2178,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredElement!; + Element elementB = AstFinder.getClass(unit, "B").declaredElement2!; _isInstantiationOf(_hasElement(elementB))([_isNull])(type); } @@ -2200,7 +2200,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredElement!; + Element elementB = AstFinder.getClass(unit, "B").declaredElement2!; _isInstantiationOf(_hasElement(elementB))([_isNum])(type); } @@ -2225,7 +2225,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredElement!; + Element elementB = AstFinder.getClass(unit, "B").declaredElement2!; _isInstantiationOf(_hasElement(elementB))([_isNull])(type); } @@ -2248,7 +2248,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredElement!; + Element elementB = AstFinder.getClass(unit, "B").declaredElement2!; _isInstantiationOf(_hasElement(elementB))([_isInt])(type); } @@ -2274,7 +2274,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; _isInstantiationOf(_hasElement(elementA))([_isObject, _isObject])(type); } @@ -2299,7 +2299,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; _isInstantiationOf(_hasElement(elementA))([_isNum, _isNum])(type); } @@ -2325,7 +2325,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; _isInstantiationOf(_hasElement(elementA))([_isNum, _isNum])(type); } @@ -2351,7 +2351,7 @@ num test(Iterable values) => values.fold(values.first as num, max); var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredElement!; + Element elementA = AstFinder.getClass(unit, "A").declaredElement2!; _isInstantiationOf(_hasElement(elementA))([_isNum, _isNum])(type); } diff --git a/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart b/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart index e4a4ed6074a07..420800971fc5c 100644 --- a/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart +++ b/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart @@ -50,7 +50,7 @@ class _InferredVariableTypesDataExtractor extends AstDataExtractor { @override DartType? computeNodeValue(Id id, AstNode node) { if (node is VariableDeclaration) { - var element = node.declaredElement!; + var element = node.declaredElement2!; if (element.hasImplicitType) { return element.type; } @@ -60,7 +60,7 @@ class _InferredVariableTypesDataExtractor extends AstDataExtractor { return element.type; } } else if (node is FunctionDeclarationStatement) { - var element = node.functionDeclaration.declaredElement!; + var element = node.functionDeclaration.declaredElement2!; if (element.hasImplicitReturnType) { return element.returnType; } diff --git a/pkg/analyzer/test/id_tests/inheritance_test.dart b/pkg/analyzer/test/id_tests/inheritance_test.dart index 92de9e2163198..ec2ed4b0478e6 100644 --- a/pkg/analyzer/test/id_tests/inheritance_test.dart +++ b/pkg/analyzer/test/id_tests/inheritance_test.dart @@ -90,7 +90,7 @@ class _InheritanceDataExtractor extends AstDataExtractor { void computeForClass(Declaration node, Id? id) { super.computeForClass(node, id); if (node is ClassDeclaration) { - var element = node.declaredElement!; + var element = node.declaredElement2!; void registerMember( MemberId id, int offset, Object object, DartType type) { @@ -135,7 +135,7 @@ class _InheritanceDataExtractor extends AstDataExtractor { @override String? computeNodeValue(Id id, AstNode node) { if (node is ClassDeclaration) { - var cls = node.declaredElement!; + var cls = node.declaredElement2!; var supertypes = []; supertypes.add(supertypeToString(cls.thisType)); for (var supertype in cls.allSupertypes) { diff --git a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart index 6ca2456b2fa67..8886f27577c54 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart @@ -144,7 +144,7 @@ void topLevelFunction() {} var myDeclaration = result.unit.declarations[0] as TopLevelVariableDeclaration; var myVariable = myDeclaration.variables.variables[0]; - var myElement = myVariable.declaredElement as TopLevelVariableElement; + var myElement = myVariable.declaredElement2 as TopLevelVariableElement; void assertMyAnnotation(AnnotatedNode node) { Annotation annotation = node.metadata[0]; @@ -352,7 +352,7 @@ main() { var c = result.unit.declarations[0] as ClassDeclaration; var constructor = c.members[1] as ConstructorDeclaration; - ConstructorElement element = constructor.declaredElement!; + ConstructorElement element = constructor.declaredElement2!; var main = result.unit.declarations[1] as FunctionDeclaration; var statement = (main.functionExpression.body as BlockFunctionBody) @@ -362,7 +362,7 @@ main() { expect(annotation.element, same(element)); var identifier_1 = annotation.name as SimpleIdentifier; - expect(identifier_1.staticElement, same(c.declaredElement)); + expect(identifier_1.staticElement, same(c.declaredElement2)); } test_annotation_onVariableList_topLevelVariable() async { @@ -383,7 +383,7 @@ class C { var myDeclaration = result.unit.declarations[0] as TopLevelVariableDeclaration; VariableDeclaration myVariable = myDeclaration.variables.variables[0]; - var myElement = myVariable.declaredElement as TopLevelVariableElement; + var myElement = myVariable.declaredElement2 as TopLevelVariableElement; var classNode = result.unit.declarations[1] as ClassDeclaration; var node = classNode.members[0] as MethodDeclaration; @@ -661,9 +661,9 @@ class D { f() {} '''); await resolveTestFile(); - var elementC = AstFinder.getClass(result.unit, 'C').declaredElement!; + var elementC = AstFinder.getClass(result.unit, 'C').declaredElement2!; var constructorC = elementC.constructors[0]; - var elementD = AstFinder.getClass(result.unit, 'D').declaredElement!; + var elementD = AstFinder.getClass(result.unit, 'D').declaredElement2!; var constructorD = elementD.constructors[0]; var atD = AstFinder.getTopLevelFunction(result.unit, 'f').metadata[0]; var constC = atD.arguments!.arguments[0] as InstanceCreationExpression; @@ -695,12 +695,12 @@ void main() { var declaration_1 = result.unit.declarations[0] as TopLevelVariableDeclaration; VariableDeclaration variable_1 = declaration_1.variables.variables[0]; - var element_1 = variable_1.declaredElement as TopLevelVariableElement; + var element_1 = variable_1.declaredElement2 as TopLevelVariableElement; var declaration_2 = result.unit.declarations[1] as TopLevelVariableDeclaration; VariableDeclaration variable_2 = declaration_2.variables.variables[0]; - var element_2 = variable_2.declaredElement as TopLevelVariableElement; + var element_2 = variable_2.declaredElement2 as TopLevelVariableElement; var main = result.unit.declarations[2] as FunctionDeclaration; @@ -733,7 +733,7 @@ void main() { VariableElement vElement; { var statement = statements[0] as VariableDeclarationStatement; - vElement = statement.variables.variables[0].declaredElement!; + vElement = statement.variables.variables[0].declaredElement2!; expect(vElement.type, typeProvider.numType); } @@ -780,7 +780,7 @@ main() { var statement = mainStatements[0] as VariableDeclarationStatement; VariableDeclaration vNode = statement.variables.variables[0]; - VariableElement vElement = vNode.declaredElement!; + VariableElement vElement = vNode.declaredElement2!; expect(vElement.type, typeProvider.intType); var value = vNode.initializer as BinaryExpression; @@ -956,12 +956,12 @@ main() { await resolveTestFile(); var mainDeclaration = result.unit.declarations[0] as FunctionDeclaration; - var mainElement = mainDeclaration.declaredElement as FunctionElement; + var mainElement = mainDeclaration.declaredElement2 as FunctionElement; var mainBody = mainDeclaration.functionExpression.body as BlockFunctionBody; List mainStatements = mainBody.block.statements; var itemsStatement = mainStatements[0] as VariableDeclarationStatement; - var itemsElement = itemsStatement.variables.variables[0].declaredElement!; + var itemsElement = itemsStatement.variables.variables[0].declaredElement2!; // First closure. ParameterElement itemElement1; @@ -1163,7 +1163,7 @@ class C { var cNode = result.unit.declarations[0] as ClassDeclaration; var constructorNode = cNode.members[0] as ConstructorDeclaration; - ParameterElement pElement = constructorNode.declaredElement!.parameters[0]; + ParameterElement pElement = constructorNode.declaredElement2!.parameters[0]; var constructorBody = constructorNode.body as BlockFunctionBody; var pStatement = constructorBody.block.statements[0] as ExpressionStatement; @@ -1185,12 +1185,12 @@ class C { await resolveTestFile(); var cNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; FieldElement fElement = cElement.getField('f')!; var constructorNode = cNode.members[1] as ConstructorDeclaration; ParameterElement pParameterElement = - constructorNode.declaredElement!.parameters[0]; + constructorNode.declaredElement2!.parameters[0]; { var initializer = @@ -1216,7 +1216,7 @@ class B extends A { await resolveTestFile(); var aNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement aElement = aNode.declaredElement!; + ClassElement aElement = aNode.declaredElement2!; var bNode = result.unit.declarations[1] as ClassDeclaration; @@ -1258,7 +1258,7 @@ class C { await resolveTestFile(); var cNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; { var unnamedConstructor = cElement.constructors[0]; @@ -1309,7 +1309,7 @@ class B { expect(result.errors, isEmpty); var aNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement aElement = aNode.declaredElement!; + ClassElement aElement = aNode.declaredElement2!; var bNode = result.unit.declarations[1] as ClassDeclaration; @@ -1317,7 +1317,7 @@ class B { ConstructorElement aUnnamed = aElement.constructors[0]; var constructor = bNode.members[0] as ConstructorDeclaration; - ConstructorElement element = constructor.declaredElement!; + ConstructorElement element = constructor.declaredElement2!; expect(element.redirectedConstructor, same(aUnnamed)); var constructorName = constructor.redirectedConstructor!; @@ -1337,7 +1337,7 @@ class B { ConstructorElement aNamed = aElement.constructors[1]; var constructor = bNode.members[1] as ConstructorDeclaration; - ConstructorElement element = constructor.declaredElement!; + ConstructorElement element = constructor.declaredElement2!; expect(element.redirectedConstructor, same(aNamed)); var constructorName = constructor.redirectedConstructor!; @@ -1370,11 +1370,11 @@ class B { expect(result.errors, isEmpty); var aNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement aElement = aNode.declaredElement!; + ClassElement aElement = aNode.declaredElement2!; var bNode = result.unit.declarations[1] as ClassDeclaration; TypeParameterType uType = - typeParameterTypeNone(bNode.declaredElement!.typeParameters[0]); + typeParameterTypeNone(bNode.declaredElement2!.typeParameters[0]); InterfaceType auType = aElement.instantiate( typeArguments: [uType], nullabilitySuffix: NullabilitySuffix.none, @@ -1384,7 +1384,7 @@ class B { ConstructorElement expectedElement = aElement.constructors[0]; var constructor = bNode.members[0] as ConstructorDeclaration; - ConstructorElement element = constructor.declaredElement!; + ConstructorElement element = constructor.declaredElement2!; var actualMember = element.redirectedConstructor!; assertMember(actualMember, expectedElement, {'T': 'U'}); @@ -1406,7 +1406,7 @@ class B { ConstructorElement expectedElement = aElement.constructors[1]; var constructor = bNode.members[1] as ConstructorDeclaration; - ConstructorElement element = constructor.declaredElement!; + ConstructorElement element = constructor.declaredElement2!; var actualMember = element.redirectedConstructor!; assertMember(actualMember, expectedElement, {'T': 'U'}); @@ -1732,7 +1732,7 @@ main() { // ignore: deprecated_member_use_from_same_package expect(vNode.name.staticType, isNull); // ignore: deprecated_member_use_from_same_package - expect(vNode.declaredElement!.type, isDynamicType); + expect(vNode.declaredElement2!.type, isDynamicType); } test_field_context() async { @@ -1744,11 +1744,11 @@ class C { await resolveTestFile(); var cNode = result.unit.declarations[0] as ClassDeclaration; - var tElement = cNode.declaredElement!.typeParameters[0]; + var tElement = cNode.declaredElement2!.typeParameters[0]; var fDeclaration = cNode.members[0] as FieldDeclaration; VariableDeclaration fNode = fDeclaration.fields.variables[0]; - var fElement = fNode.declaredElement as FieldElement; + var fElement = fNode.declaredElement2 as FieldElement; expect( fElement.type, typeProvider.listType(typeParameterTypeNone(tElement))); } @@ -1790,7 +1790,8 @@ class A { List parameters = constructor.parameters.parameters; var p = parameters[0] as FunctionTypedFormalParameter; - expect(p.declaredElement, same(constructor.declaredElement!.parameters[0])); + expect( + p.declaredElement, same(constructor.declaredElement2!.parameters[0])); { var type = (p.declaredElement as ParameterElement).type as FunctionType; @@ -1822,11 +1823,11 @@ class A { var fDeclaration = clazz.members[0] as FieldDeclaration; VariableDeclaration fNode = fDeclaration.fields.variables[0]; - var fElement = fNode.declaredElement as FieldElement; + var fElement = fNode.declaredElement2 as FieldElement; var constructor = clazz.members[1] as ConstructorDeclaration; - var pElement = constructor.declaredElement!.parameters[0] + var pElement = constructor.declaredElement2!.parameters[0] as FieldFormalParameterElement; expect(pElement.field, same(fElement)); @@ -1855,12 +1856,12 @@ class A { var fDeclaration = clazz.members[0] as FieldDeclaration; VariableDeclaration fNode = fDeclaration.fields.variables[0]; - var fElement = fNode.declaredElement as FieldElement; + var fElement = fNode.declaredElement2 as FieldElement; var constructor = clazz.members[1] as ConstructorDeclaration; List parameters = constructor.parameters.parameters; - var parameterElement = constructor.declaredElement!.parameters[0] + var parameterElement = constructor.declaredElement2!.parameters[0] as FieldFormalParameterElement; expect(parameterElement.field, same(fElement)); @@ -1882,12 +1883,12 @@ class A { var fDeclaration = clazz.members[0] as FieldDeclaration; VariableDeclaration fNode = fDeclaration.fields.variables[0]; - var fElement = fNode.declaredElement as FieldElement; + var fElement = fNode.declaredElement2 as FieldElement; var constructor = clazz.members[1] as ConstructorDeclaration; List parameters = constructor.parameters.parameters; - var parameterElement = constructor.declaredElement!.parameters[0] + var parameterElement = constructor.declaredElement2!.parameters[0] as FieldFormalParameterElement; expect(parameterElement.field, same(fElement)); @@ -1909,7 +1910,7 @@ main(B b) { await resolveTestFile(); // var aNode = result.unit!.declarations[0] as ClassDeclaration; -// ClassElement eElement = aNode.declaredElement!; +// ClassElement eElement = aNode.declaredElement2!; // MethodElement mElement = eElement.getMethod('m'); List mainStatements = _getMainStatements(result); @@ -2009,7 +2010,7 @@ main() { { var statement = mainStatements[0] as VariableDeclarationStatement; VariableDeclaration itemsNode = statement.variables.variables[0]; - itemsElement = itemsNode.declaredElement!; + itemsElement = itemsNode.declaredElement2!; expect(itemsElement.type, listIntType); } @@ -2040,7 +2041,7 @@ var b = new C.named(); CompilationUnit unit = result.unit; var cNode = unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; ConstructorElement defaultConstructor = cElement.constructors[0]; ConstructorElement namedConstructor = cElement.constructors[1]; @@ -2093,7 +2094,7 @@ var v = new X(1, b: true, c: 3.0); CompilationUnit unit = result.unit; var xNode = unit.declarations[0] as ClassDeclaration; - ClassElement xElement = xNode.declaredElement!; + ClassElement xElement = xNode.declaredElement2!; ConstructorElement constructorElement = xElement.constructors[0]; var vDeclaration = unit.declarations[1] as TopLevelVariableDeclaration; @@ -2134,7 +2135,7 @@ var b = new C.named(2); CompilationUnit unit = result.unit; var cNode = unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; ConstructorElement defaultConstructor = cElement.constructors[0]; ConstructorElement namedConstructor = cElement.constructors[1]; @@ -3766,7 +3767,7 @@ main() { expect(result.errors, isNotEmpty); var tRef = findNode.simple('T.U v;'); - var tElement = findNode.typeParameter('T>()').declaredElement!; + var tElement = findNode.typeParameter('T>()').declaredElement2!; assertElement(tRef, tElement); assertTypeDynamic(tRef); } @@ -3957,7 +3958,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; FunctionExpression fExpression = fNode.functionExpression; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; expect(fElement, isNotNull); assertType(fElement.type, fTypeString); @@ -3994,7 +3995,7 @@ void main() { var vStatement = mainStatements[1] as VariableDeclarationStatement; VariableDeclaration vDeclaration = vStatement.variables.variables[0]; - expect(vDeclaration.declaredElement!.type, doubleType); + expect(vDeclaration.declaredElement2!.type, doubleType); var fInvocation = vDeclaration.initializer as MethodInvocation; expect(fInvocation.methodName.staticElement, same(fElement)); @@ -4035,7 +4036,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; FunctionExpression fExpression = fNode.functionExpression; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; TypeParameterElement tElement = fElement.typeParameters[0]; TypeParameterElement uElement = fElement.typeParameters[1]; @@ -4045,14 +4046,14 @@ void main() { expect(fTypeParameters, hasLength(2)); TypeParameter tNode = fTypeParameters[0]; - expect(tNode.declaredElement, same(tElement)); + expect(tNode.declaredElement2, same(tElement)); // ignore: deprecated_member_use_from_same_package expect(tNode.name.staticElement, same(tElement)); // ignore: deprecated_member_use_from_same_package expect(tNode.name.staticType, typeProvider.typeType); TypeParameter uNode = fTypeParameters[1]; - expect(uNode.declaredElement, same(uElement)); + expect(uNode.declaredElement2, same(uElement)); // ignore: deprecated_member_use_from_same_package expect(uNode.name.staticElement, same(uElement)); // ignore: deprecated_member_use_from_same_package @@ -4103,7 +4104,7 @@ void main() { var vStatement = mainStatements[1] as VariableDeclarationStatement; VariableDeclaration vDeclaration = vStatement.variables.variables[0]; - expect(vDeclaration.declaredElement!.type, typeProvider.intType); + expect(vDeclaration.declaredElement2!.type, typeProvider.intType); var fInvocation = vDeclaration.initializer as MethodInvocation; expect(fInvocation.methodName.staticElement, same(fElement)); @@ -4124,7 +4125,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; assertType( fElement.type, 'void Function(T, U, V)'); @@ -4146,7 +4147,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; assertType(fElement.type, 'void Function({T x})'); var tElement = fElement.typeParameters[0]; @@ -4166,7 +4167,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; assertType(fElement.type, 'void Function([T])'); var tElement = fElement.typeParameters[0]; @@ -4192,7 +4193,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; FunctionExpression fExpression = fNode.functionExpression; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; expect(fElement, isNotNull); assertType(fElement.type, fTypeString); @@ -4257,7 +4258,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; FunctionExpression fExpression = fNode.functionExpression; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; expect(fNode.returnType, isNull); expect(fElement, isNotNull); @@ -4288,7 +4289,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; FunctionExpression fExpression = fNode.functionExpression; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; expect(fElement, isNotNull); assertType(fElement.type, fTypeString); @@ -4332,7 +4333,7 @@ void main() { { var statement = mainStatements[1] as VariableDeclarationStatement; VariableDeclaration declaration = statement.variables.variables[0]; - expect(declaration.declaredElement!.type, doubleType); + expect(declaration.declaredElement2!.type, doubleType); var invocation = declaration.initializer as MethodInvocation; expect(invocation.methodName.staticElement, same(fElement)); @@ -4385,7 +4386,7 @@ void main(List p) { List statements = _getMainStatements(result); // (int p) - VariableElement pElement = main.declaredElement!.parameters[0]; + VariableElement pElement = main.declaredElement2!.parameters[0]; expect(pElement.type, listNone(typeProvider.stringType)); // p; @@ -4416,7 +4417,7 @@ void main() { var fStatement = mainStatements[0] as FunctionDeclarationStatement; FunctionDeclaration fNode = fStatement.functionDeclaration; FunctionExpression fExpression = fNode.functionExpression; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; ParameterElement aElement = fElement.parameters[0]; _assertSimpleParameter( fExpression.parameters!.parameters[0] as SimpleFormalParameter, @@ -4439,7 +4440,7 @@ void main() { var gStatement = fStatements[1] as FunctionDeclarationStatement; FunctionDeclaration gNode = gStatement.functionDeclaration; FunctionExpression gExpression = gNode.functionExpression; - var gElement = gNode.declaredElement as FunctionElement; + var gElement = gNode.declaredElement2 as FunctionElement; ParameterElement bElement = gElement.parameters[0]; _assertSimpleParameter( gExpression.parameters!.parameters[0] as SimpleFormalParameter, @@ -4472,7 +4473,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4495,7 +4496,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4527,7 +4528,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4558,7 +4559,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4590,7 +4591,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4618,7 +4619,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4646,7 +4647,7 @@ void main() { var mainStatements = _getMainStatements(result); var fDeclaration = mainStatements[0] as FunctionDeclarationStatement; - var fElement = fDeclaration.functionDeclaration.declaredElement!; + var fElement = fDeclaration.functionDeclaration.declaredElement2!; var tElement = fElement.typeParameters[0]; var body = fDeclaration.functionDeclaration.functionExpression.body as BlockFunctionBody; @@ -4669,7 +4670,7 @@ void main() { '''); await resolveTestFile(); - var tElement = findNode.typeParameter('T>(T x)').declaredElement!; + var tElement = findNode.typeParameter('T>(T x)').declaredElement2!; var gType = findNode.namedType('Consumer'); var gTypeType = gType.type as FunctionType; @@ -4696,7 +4697,7 @@ void main() { '''); await resolveTestFile(); - var tElement = findNode.typeParameter('T>(T x)').declaredElement!; + var tElement = findNode.typeParameter('T>(T x)').declaredElement2!; var gType = findNode.namedType('Consumer'); var gTypeType = gType.type as FunctionType; @@ -4723,7 +4724,7 @@ void main() { '''); await resolveTestFile(); - var tElement = findNode.typeParameter('T>(T x)').declaredElement!; + var tElement = findNode.typeParameter('T>(T x)').declaredElement2!; var gType = findNode.namedType('Consumer'); var gTypeType = gType.type as FunctionType; @@ -4750,7 +4751,7 @@ void main() { '''); await resolveTestFile(); - var tElement = findNode.typeParameter('T>(T x)').declaredElement!; + var tElement = findNode.typeParameter('T>(T x)').declaredElement2!; var gType = findNode.namedType('Producer'); var gTypeType = gType.type as FunctionType; @@ -4775,7 +4776,7 @@ void main() { InterfaceType intType = typeProvider.intType; var main = result.unit.declarations[0] as FunctionDeclaration; - expect(main.declaredElement, isNotNull); + expect(main.declaredElement2, isNotNull); // ignore: deprecated_member_use_from_same_package expect(main.name.staticElement, isNotNull); @@ -4794,7 +4795,7 @@ void main() { expect(vNode.name.staticType, isNull); expect(vNode.initializer!.staticType, intType); - vElement = vNode.declaredElement!; + vElement = vNode.declaredElement2!; expect(vElement, isNotNull); expect(vElement.type, isNotNull); expect(vElement.type, intType); @@ -4827,7 +4828,7 @@ class C { var vDeclaration = cDeclaration.members[0] as FieldDeclaration; VariableDeclaration vNode = vDeclaration.fields.variables[0]; - var vElement = vNode.declaredElement as FieldElement; + var vElement = vNode.declaredElement2 as FieldElement; expect(vElement.type, typeProvider.numType); var fooDeclaration = cDeclaration.members[1] as MethodDeclaration; @@ -4864,7 +4865,7 @@ void main() { var vStatement = statements[0] as VariableDeclarationStatement; VariableDeclaration vNode = vStatement.variables.variables[0]; - var vElement = vNode.declaredElement as LocalVariableElement; + var vElement = vNode.declaredElement2 as LocalVariableElement; expect(vElement.type, typeProvider.numType); var forEachStatement = statements[1] as ForStatement; @@ -4898,7 +4899,7 @@ num v; var vDeclaration = unit.declarations[1] as TopLevelVariableDeclaration; VariableDeclaration vNode = vDeclaration.variables.variables[0]; - var vElement = vNode.declaredElement as TopLevelVariableElement; + var vElement = vNode.declaredElement2 as TopLevelVariableElement; expect(vElement.type, typeProvider.numType); var forEachStatement = statements[0] as ForStatement; @@ -4934,7 +4935,7 @@ void main() { forEachStatement.forLoopParts as ForEachPartsWithDeclaration; DeclaredIdentifier vNode = forEachParts.loopVariable; - LocalVariableElement vElement = vNode.declaredElement!; + LocalVariableElement vElement = vNode.declaredElement2!; expect(vElement.type, typeProvider.intType); // ignore: deprecated_member_use_from_same_package @@ -4966,7 +4967,7 @@ void main() { forEachStatement.forLoopParts as ForEachPartsWithDeclaration; DeclaredIdentifier vNode = forEachParts.loopVariable; - LocalVariableElement vElement = vNode.declaredElement!; + LocalVariableElement vElement = vNode.declaredElement2!; expect(vElement.type, typeProvider.numType); var vNamedType = vNode.type as NamedType; @@ -5000,11 +5001,11 @@ void main() { var declarationStatement = statements[0] as VariableDeclarationStatement; VariableDeclaration aNode = declarationStatement.variables.variables[0]; - var aElement = aNode.declaredElement as LocalVariableElement; + var aElement = aNode.declaredElement2 as LocalVariableElement; expect(aElement.type, typeProvider.intType); VariableDeclaration bNode = declarationStatement.variables.variables[1]; - var bElement = bNode.declaredElement as LocalVariableElement; + var bElement = bNode.declaredElement2 as LocalVariableElement; expect(bElement.type, typeProvider.doubleType); } @@ -5035,7 +5036,7 @@ void main() { // int a; var aDeclaration = fStatements[0] as VariableDeclarationStatement; VariableElement aElement = - aDeclaration.variables.variables[0].declaredElement!; + aDeclaration.variables.variables[0].declaredElement2!; // a; { @@ -5054,7 +5055,7 @@ void main() { // double b; var bDeclaration = gStatements[0] as VariableDeclarationStatement; VariableElement bElement = - bDeclaration.variables.variables[0].declaredElement!; + bDeclaration.variables.variables[0].declaredElement2!; // a; { @@ -5138,7 +5139,7 @@ void g(C c) { await resolveTestFile(); var classDeclaration = result.unit.declarations[0] as ClassDeclaration; var methodDeclaration = classDeclaration.members[0] as MethodDeclaration; - var methodElement = methodDeclaration.declaredElement as MethodElement; + var methodElement = methodDeclaration.declaredElement2 as MethodElement; InterfaceType doubleType = typeProvider.doubleType; @@ -5207,7 +5208,7 @@ main() { expect(result.errors, isEmpty); var cNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; MethodElement callElement = cElement.methods[0]; List statements = _getMainStatements(result); @@ -5233,7 +5234,7 @@ f(double computation(int p)) { expect(result.errors, isEmpty); var main = result.unit.declarations[0] as FunctionDeclaration; - var mainElement = main.declaredElement as FunctionElement; + var mainElement = main.declaredElement2 as FunctionElement; ParameterElement parameter = mainElement.parameters[0]; var mainBody = main.functionExpression.body as BlockFunctionBody; @@ -5271,7 +5272,7 @@ main(B b) { var aNode = result.unit.declarations[0] as ClassDeclaration; var fooNode = aNode.members[0] as MethodDeclaration; - var fooElement = fooNode.declaredElement as MethodElement; + var fooElement = fooNode.declaredElement2 as MethodElement; List mainStatements = _getMainStatements(result); var statement = mainStatements[0] as ExpressionStatement; @@ -5355,7 +5356,7 @@ void foo(int a, {bool b, double c}) {} List mainStatements = _getMainStatements(result); var foo = result.unit.declarations[1] as FunctionDeclaration; - ExecutableElement fooElement = foo.declaredElement!; + ExecutableElement fooElement = foo.declaredElement2!; var statement = mainStatements[0] as ExpressionStatement; var invocation = statement.expression as MethodInvocation; @@ -5502,9 +5503,9 @@ class C { List mainStatements = _getMainStatements(result); var cNode = result.unit.declarations[1] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; var mNode = cNode.members[0] as MethodDeclaration; - var mElement = mNode.declaredElement as MethodElement; + var mElement = mNode.declaredElement2 as MethodElement; { var statement = mainStatements[0] as ExpressionStatement; @@ -5559,7 +5560,7 @@ class C { await resolveTestFile(); var cNode = result.unit.declarations[0] as ClassDeclaration; - TypeParameterElement tElement = cNode.declaredElement!.typeParameters[0]; + TypeParameterElement tElement = cNode.declaredElement2!.typeParameters[0]; var barNode = cNode.members[1] as MethodDeclaration; var barBody = barNode.body as BlockFunctionBody; @@ -5586,7 +5587,7 @@ double f(int a, String b) {} InterfaceType doubleType = typeProvider.doubleType; var fNode = result.unit.declarations[1] as FunctionDeclaration; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; var statement = mainStatements[0] as ExpressionStatement; var invocation = statement.expression as MethodInvocation; @@ -5615,7 +5616,7 @@ void f(T a, U b) {} List mainStatements = _getMainStatements(result); var fNode = result.unit.declarations[1] as FunctionDeclaration; - var fElement = fNode.declaredElement as FunctionElement; + var fElement = fNode.declaredElement2 as FunctionElement; // f(true, 'str'); { @@ -6039,7 +6040,7 @@ main() { VariableElement v; { var statement = mainStatements[0] as VariableDeclarationStatement; - v = statement.variables.variables[0].declaredElement!; + v = statement.variables.variables[0].declaredElement2!; expect(v.type, typeProvider.intType); } @@ -6141,12 +6142,12 @@ class C { List statements = _getMainStatements(result); var cDeclaration = result.unit.declarations[1] as ClassDeclaration; - ClassElement cElement = cDeclaration.declaredElement!; + ClassElement cElement = cDeclaration.declaredElement2!; FieldElement fElement = cElement.fields[0]; var cStatement = statements[0] as VariableDeclarationStatement; VariableElement vElement = - cStatement.variables.variables[0].declaredElement!; + cStatement.variables.variables[0].declaredElement2!; var statement = statements[1] as ExpressionStatement; var prefixed = statement.expression as PrefixedIdentifier; @@ -6176,7 +6177,7 @@ class C { List statements = _getMainStatements(result); var cDeclaration = result.unit.declarations[1] as ClassDeclaration; - ClassElement cElement = cDeclaration.declaredElement!; + ClassElement cElement = cDeclaration.declaredElement2!; FieldElement fElement = cElement.fields[0]; var statement = statements[0] as ExpressionStatement; @@ -6201,7 +6202,7 @@ f(double computation(int p)) { expect(result.errors, isEmpty); var main = result.unit.declarations[0] as FunctionDeclaration; - var mainElement = main.declaredElement as FunctionElement; + var mainElement = main.declaredElement2 as FunctionElement; ParameterElement parameter = mainElement.parameters[0]; var mainBody = main.functionExpression.body as BlockFunctionBody; @@ -6326,7 +6327,7 @@ main() { VariableElement v; { var statement = mainStatements[0] as VariableDeclarationStatement; - v = statement.variables.variables[0].declaredElement!; + v = statement.variables.variables[0].declaredElement2!; expect(v.type, typeProvider.intType); } @@ -6372,7 +6373,7 @@ main() { VariableElement v; { var statement = mainStatements[0] as VariableDeclarationStatement; - v = statement.variables.variables[0].declaredElement!; + v = statement.variables.variables[0].declaredElement2!; expect(v.type, typeProvider.boolType); } @@ -6406,7 +6407,7 @@ class C { CompilationUnit unit = result.unit; var cClassDeclaration = unit.declarations[1] as ClassDeclaration; - ClassElement cClassElement = cClassDeclaration.declaredElement!; + ClassElement cClassElement = cClassDeclaration.declaredElement2!; FieldElement fElement = cClassElement.getField('f')!; List mainStatements = _getMainStatements(result); @@ -6458,7 +6459,7 @@ class C { CompilationUnit unit = result.unit; var cClassDeclaration = unit.declarations[1] as ClassDeclaration; - ClassElement cClassElement = cClassDeclaration.declaredElement!; + ClassElement cClassElement = cClassDeclaration.declaredElement2!; FieldElement fElement = cClassElement.getField('f')!; List mainStatements = _getMainStatements(result); @@ -6495,7 +6496,7 @@ class C { CompilationUnit unit = result.unit; var cClassDeclaration = unit.declarations[1] as ClassDeclaration; - ClassElement cClassElement = cClassDeclaration.declaredElement!; + ClassElement cClassElement = cClassDeclaration.declaredElement2!; FieldElement fElement = cClassElement.getField('f')!; List mainStatements = _getMainStatements(result); @@ -6560,7 +6561,7 @@ void main() { '''); var main = result.unit.declarations[0] as FunctionDeclaration; - expect(main.declaredElement, isNotNull); + expect(main.declaredElement2, isNotNull); // ignore: deprecated_member_use_from_same_package expect(main.name.staticElement, isNotNull); @@ -6574,7 +6575,7 @@ void main() { VariableElement vElement; { var statement = statements[0] as VariableDeclarationStatement; - vElement = statement.variables.variables[0].declaredElement!; + vElement = statement.variables.variables[0].declaredElement2!; } { @@ -6648,10 +6649,10 @@ class B extends A { var aNode = result.unit.declarations[0] as ClassDeclaration; var bNode = result.unit.declarations[1] as ClassDeclaration; - var methodElement = aNode.members[0].declaredElement as MethodElement; + var methodElement = aNode.members[0].declaredElement2 as MethodElement; var getterElement = - aNode.members[1].declaredElement as PropertyAccessorElement; - var operatorElement = aNode.members[3].declaredElement as MethodElement; + aNode.members[1].declaredElement2 as PropertyAccessorElement; + var operatorElement = aNode.members[3].declaredElement2 as MethodElement; var testNode = bNode.members[0] as MethodDeclaration; var testBody = testNode.body as BlockFunctionBody; @@ -6674,7 +6675,7 @@ class B extends A { var target = invocation.target as SuperExpression; expect( - target.staticType, interfaceTypeNone(bNode.declaredElement!)); // raw + target.staticType, interfaceTypeNone(bNode.declaredElement2!)); // raw expect(invocation.methodName.staticElement, same(methodElement)); } @@ -6696,7 +6697,7 @@ class B extends A { var target = propertyAccess.target as SuperExpression; expect( - target.staticType, interfaceTypeNone(bNode.declaredElement!)); // raw + target.staticType, interfaceTypeNone(bNode.declaredElement2!)); // raw expect(propertyAccess.propertyName.staticElement, same(getterElement)); expect(propertyAccess.propertyName.staticType, typeProvider.intType); @@ -6720,7 +6721,7 @@ class B extends A { var target = propertyAccess.target as SuperExpression; expect( - target.staticType, interfaceTypeNone(bNode.declaredElement!)); // raw + target.staticType, interfaceTypeNone(bNode.declaredElement2!)); // raw assertUnresolvedSimpleIdentifier(propertyAccess.propertyName); } @@ -6732,7 +6733,7 @@ class B extends A { var target = binary.leftOperand as ThisExpression; expect( - target.staticType, interfaceTypeNone(bNode.declaredElement!)); // raw + target.staticType, interfaceTypeNone(bNode.declaredElement2!)); // raw expect(binary.staticElement, same(operatorElement)); expect(binary.staticType, typeProvider.intType); @@ -6762,10 +6763,10 @@ class A { var aNode = result.unit.declarations[0] as ClassDeclaration; - var methodElement = aNode.members[0].declaredElement as MethodElement; + var methodElement = aNode.members[0].declaredElement2 as MethodElement; var getterElement = - aNode.members[1].declaredElement as PropertyAccessorElement; - var operatorElement = aNode.members[3].declaredElement as MethodElement; + aNode.members[1].declaredElement2 as PropertyAccessorElement; + var operatorElement = aNode.members[3].declaredElement2 as MethodElement; var testNode = aNode.members[4] as MethodDeclaration; var testBody = testNode.body as BlockFunctionBody; @@ -6863,7 +6864,7 @@ class C { await resolveTestFile(); var cNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; var constructorNode = cNode.members[1] as ConstructorDeclaration; @@ -6908,16 +6909,16 @@ class D extends A with B implements C {} await resolveTestFile(); var aNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement aElement = aNode.declaredElement!; + ClassElement aElement = aNode.declaredElement2!; var bNode = result.unit.declarations[1] as ClassDeclaration; - ClassElement bElement = bNode.declaredElement!; + ClassElement bElement = bNode.declaredElement2!; var cNode = result.unit.declarations[2] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; var dNode = result.unit.declarations[3] as ClassDeclaration; - Element dElement = dNode.declaredElement!; + Element dElement = dNode.declaredElement2!; // ignore: deprecated_member_use_from_same_package SimpleIdentifier dName = dNode.name; @@ -6978,16 +6979,16 @@ class D = A with B implements C; await resolveTestFile(); var aNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement aElement = aNode.declaredElement!; + ClassElement aElement = aNode.declaredElement2!; var bNode = result.unit.declarations[1] as ClassDeclaration; - ClassElement bElement = bNode.declaredElement!; + ClassElement bElement = bNode.declaredElement2!; var cNode = result.unit.declarations[2] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; var dNode = result.unit.declarations[3] as ClassTypeAlias; - Element dElement = dNode.declaredElement!; + Element dElement = dNode.declaredElement2!; // ignore: deprecated_member_use_from_same_package SimpleIdentifier dName = dNode.name; @@ -7047,7 +7048,7 @@ enum MyEnum { await resolveTestFile(); var enumNode = result.unit.declarations[0] as EnumDeclaration; - ClassElement enumElement = enumNode.declaredElement!; + final enumElement = enumNode.declaredElement2!; // ignore: deprecated_member_use_from_same_package SimpleIdentifier dName = enumNode.name; @@ -7057,7 +7058,7 @@ enum MyEnum { { var aElement = enumElement.getField('A'); var aNode = enumNode.constants[0]; - expect(aNode.declaredElement, same(aElement)); + expect(aNode.declaredElement2, same(aElement)); // ignore: deprecated_member_use_from_same_package expect(aNode.name.staticElement, same(aElement)); @@ -7068,7 +7069,7 @@ enum MyEnum { { var bElement = enumElement.getField('B'); var bNode = enumNode.constants[1]; - expect(bNode.declaredElement, same(bElement)); + expect(bNode.declaredElement2, same(bElement)); // ignore: deprecated_member_use_from_same_package expect(bNode.name.staticElement, same(bElement)); @@ -7095,7 +7096,7 @@ class C { final intElement = intType.element2; var cNode = result.unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; // The class name identifier. // ignore: deprecated_member_use_from_same_package @@ -7106,8 +7107,8 @@ class C { // unnamed constructor { var node = cNode.members[0] as ConstructorDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'C Function(int)'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'C Function(int)'); expect(node.returnType.staticElement, same(cElement)); expect(node.returnType.staticType, isNull); expect(node.name2, isNull); @@ -7116,13 +7117,13 @@ class C { // named constructor { var node = cNode.members[1] as ConstructorDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'C Function(int)'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'C Function(int)'); expect(node.returnType.staticElement, same(cElement)); expect(node.returnType.staticType, isNull); // ignore: deprecated_member_use_from_same_package - expect(node.name!.staticElement, same(node.declaredElement)); + expect(node.name!.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name!.staticType, isNull); } @@ -7130,8 +7131,8 @@ class C { // publicMethod() { var node = cNode.members[2] as MethodDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'int Function(double)'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'int Function(double)'); // method return type var returnType = node.returnType as NamedType; @@ -7142,7 +7143,7 @@ class C { // method name // ignore: deprecated_member_use_from_same_package - expect(node.name.staticElement, same(node.declaredElement)); + expect(node.name.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name.staticType, isNull); @@ -7161,8 +7162,8 @@ class C { // publicGetter() { var node = cNode.members[3] as MethodDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'int Function()'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'int Function()'); // getter return type var returnType = node.returnType as NamedType; @@ -7173,7 +7174,7 @@ class C { // getter name // ignore: deprecated_member_use_from_same_package - expect(node.name.staticElement, same(node.declaredElement)); + expect(node.name.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name.staticType, isNull); } @@ -7181,8 +7182,8 @@ class C { // publicSetter() { var node = cNode.members[4] as MethodDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'void Function(double)'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'void Function(double)'); // setter return type var returnType = node.returnType as NamedType; @@ -7193,7 +7194,7 @@ class C { // setter name // ignore: deprecated_member_use_from_same_package - expect(node.name.staticElement, same(node.declaredElement)); + expect(node.name.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name.staticType, isNull); @@ -7225,8 +7226,8 @@ void set topSetter(double p) {} // topFunction() { var node = result.unit.declarations[0] as FunctionDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'int Function(double)'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'int Function(double)'); // function return type var returnType = node.returnType as NamedType; @@ -7237,7 +7238,7 @@ void set topSetter(double p) {} // function name // ignore: deprecated_member_use_from_same_package - expect(node.name.staticElement, same(node.declaredElement)); + expect(node.name.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name.staticType, isNull); @@ -7257,8 +7258,8 @@ void set topSetter(double p) {} // topGetter() { var node = result.unit.declarations[1] as FunctionDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'int Function()'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'int Function()'); // getter return type var returnType = node.returnType as NamedType; @@ -7269,7 +7270,7 @@ void set topSetter(double p) {} // getter name // ignore: deprecated_member_use_from_same_package - expect(node.name.staticElement, same(node.declaredElement)); + expect(node.name.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name.staticType, isNull); } @@ -7277,8 +7278,8 @@ void set topSetter(double p) {} // topSetter() { var node = result.unit.declarations[2] as FunctionDeclaration; - expect(node.declaredElement, isNotNull); - assertType(node.declaredElement!.type, 'void Function(double)'); + expect(node.declaredElement2, isNotNull); + assertType(node.declaredElement2!.type, 'void Function(double)'); // setter return type var returnType = node.returnType as NamedType; @@ -7289,7 +7290,7 @@ void set topSetter(double p) {} // setter name // ignore: deprecated_member_use_from_same_package - expect(node.name.staticElement, same(node.declaredElement)); + expect(node.name.staticElement, same(node.declaredElement2)); // ignore: deprecated_member_use_from_same_package expect(node.name.staticType, isNull); @@ -7321,7 +7322,7 @@ class C { CompilationUnitElement unitElement = unit.declaredElement!; var cNode = unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; TypeParameterElement tElement = cElement.typeParameters[0]; expect(cElement, same(unitElement.classes[0])); @@ -7329,7 +7330,7 @@ class C { FieldElement aElement = cElement.getField('a')!; var aDeclaration = cNode.members[0] as FieldDeclaration; VariableDeclaration aNode = aDeclaration.fields.variables[0]; - expect(aNode.declaredElement, same(aElement)); + expect(aNode.declaredElement2, same(aElement)); expect(aElement.type, typeProvider.intType); // ignore: deprecated_member_use_from_same_package expect(aNode.name.staticElement, same(aElement)); @@ -7350,7 +7351,7 @@ class C { expect(typeIdentifier.staticType, isNull); VariableDeclaration bNode = bDeclaration.fields.variables[0]; - expect(bNode.declaredElement, same(bElement)); + expect(bNode.declaredElement2, same(bElement)); expect(bElement.type, typeParameterTypeNone(tElement)); // ignore: deprecated_member_use_from_same_package expect(bNode.name.staticElement, same(bElement)); @@ -7371,7 +7372,7 @@ class C { CompilationUnit unit = result.unit; var cNode = unit.declarations[0] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; var fieldDeclaration = cNode.members[0] as FieldDeclaration; @@ -7379,7 +7380,7 @@ class C { FieldElement aElement = cElement.getField('a')!; VariableDeclaration aNode = fieldDeclaration.fields.variables[0]; - expect(aNode.declaredElement, same(aElement)); + expect(aNode.declaredElement2, same(aElement)); expect(aElement.type, typeProvider.intType); // ignore: deprecated_member_use_from_same_package @@ -7395,7 +7396,7 @@ class C { FieldElement bElement = cElement.getField('b')!; VariableDeclaration bNode = fieldDeclaration.fields.variables[1]; - expect(bNode.declaredElement, same(bElement)); + expect(bNode.declaredElement2, same(bElement)); expect(bElement.type, typeProvider.doubleType); // ignore: deprecated_member_use_from_same_package @@ -7422,7 +7423,7 @@ double b = 2.3; { var aDeclaration = unit.declarations[0] as TopLevelVariableDeclaration; VariableDeclaration aNode = aDeclaration.variables.variables[0]; - var aElement = aNode.declaredElement as TopLevelVariableElement; + var aElement = aNode.declaredElement2 as TopLevelVariableElement; expect(aElement, same(unitElement.topLevelVariables[0])); expect(aElement.type, typeProvider.intType); // ignore: deprecated_member_use_from_same_package @@ -7438,7 +7439,7 @@ double b = 2.3; var bDeclaration = unit.declarations[1] as TopLevelVariableDeclaration; VariableDeclaration bNode = bDeclaration.variables.variables[0]; - var bElement = bNode.declaredElement as TopLevelVariableElement; + var bElement = bNode.declaredElement2 as TopLevelVariableElement; expect(bElement, same(unitElement.topLevelVariables[1])); expect(bElement.type, typeProvider.doubleType); @@ -7471,7 +7472,7 @@ var a = 1, b = 2.3; { VariableDeclaration aNode = variableDeclaration.variables.variables[0]; - var aElement = aNode.declaredElement as TopLevelVariableElement; + var aElement = aNode.declaredElement2 as TopLevelVariableElement; expect(aElement, same(unitElement.topLevelVariables[0])); expect(aElement.type, typeProvider.intType); @@ -7486,7 +7487,7 @@ var a = 1, b = 2.3; { VariableDeclaration bNode = variableDeclaration.variables.variables[1]; - var bElement = bNode.declaredElement as TopLevelVariableElement; + var bElement = bNode.declaredElement2 as TopLevelVariableElement; expect(bElement, same(unitElement.topLevelVariables[1])); expect(bElement.type, typeProvider.doubleType); @@ -7511,7 +7512,7 @@ void main() { await resolveTestFile(); var fDeclaration = result.unit.declarations[0] as FunctionDeclaration; - var fElement = fDeclaration.declaredElement as FunctionElement; + var fElement = fDeclaration.declaredElement2 as FunctionElement; InterfaceType doubleType = typeProvider.doubleType; @@ -7586,7 +7587,7 @@ typedef int F(bool a, T b); CompilationUnit unit = result.unit; var alias = unit.declarations[0] as FunctionTypeAlias; - TypeAliasElement aliasElement = alias.declaredElement!; + TypeAliasElement aliasElement = alias.declaredElement2!; var function = aliasElement.aliasedElement as GenericFunctionTypeElement; expect(aliasElement, same(findElement.typeAlias('F'))); expect(function.returnType, typeProvider.intType); @@ -7621,16 +7622,16 @@ class C, V> {} CompilationUnitElement unitElement = unit.declaredElement!; var aNode = unit.declarations[0] as ClassDeclaration; - ClassElement aElement = aNode.declaredElement!; + ClassElement aElement = aNode.declaredElement2!; expect(aElement, same(unitElement.classes[0])); var cNode = unit.declarations[1] as ClassDeclaration; - ClassElement cElement = cNode.declaredElement!; + ClassElement cElement = cNode.declaredElement2!; expect(cElement, same(unitElement.classes[1])); { TypeParameter tNode = cNode.typeParameters!.typeParameters[0]; - expect(tNode.declaredElement, same(cElement.typeParameters[0])); + expect(tNode.declaredElement2, same(cElement.typeParameters[0])); var bound = tNode.bound as NamedType; expect(bound.type, interfaceTypeNone(aElement)); @@ -7648,7 +7649,7 @@ class C, V> {} ); TypeParameter uNode = cNode.typeParameters!.typeParameters[1]; - expect(uNode.declaredElement, same(cElement.typeParameters[1])); + expect(uNode.declaredElement2, same(cElement.typeParameters[1])); var bound = uNode.bound as NamedType; expect(bound.type, listOfA); @@ -7667,7 +7668,7 @@ class C, V> {} { TypeParameter vNode = cNode.typeParameters!.typeParameters[2]; - expect(vNode.declaredElement, same(cElement.typeParameters[2])); + expect(vNode.declaredElement2, same(cElement.typeParameters[2])); expect(vNode.bound, isNull); } } @@ -7815,7 +7816,7 @@ class C { await resolveTestFile(); FunctionTypeAlias alias = findNode.functionTypeAlias('F'); - TypeAliasElement aliasElement = alias.declaredElement!; + TypeAliasElement aliasElement = alias.declaredElement2!; FieldDeclaration fDeclaration = findNode.fieldDeclaration('F f'); @@ -7913,7 +7914,7 @@ typedef void F(int p); CompilationUnit unit = result.unit; var fNode = unit.declarations[1] as FunctionTypeAlias; - TypeAliasElement fElement = fNode.declaredElement!; + TypeAliasElement fElement = fNode.declaredElement2!; var statements = _getMainStatements(result); diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart index bbd63521f10ee..471ae13136533 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart @@ -1876,7 +1876,7 @@ class B {} expect(result.errors, hasLength(0)); var f = result.unit.declarations[0] as FunctionDeclaration; - assertType(f.declaredElement!.type, 'int Function()'); + assertType(f.declaredElement2!.type, 'int Function()'); assertType(f.returnType!.typeOrThrow, 'int'); // The same result is also received through the stream. @@ -2441,7 +2441,7 @@ class C { var result = await driver.getResultValid(b); var c = _getTopLevelVar(result.unit, 'c'); - var typeC = c.declaredElement!.type as InterfaceType; + var typeC = c.declaredElement2!.type as InterfaceType; // The class C has an old field 'foo', not the new 'bar'. expect(typeC.element2.getField('foo'), isNotNull); expect(typeC.element2.getField('bar'), isNull); @@ -3381,7 +3381,7 @@ class F extends X {} expect(result.errors, hasLength(0)); var f = result.unit.declarations[0] as FunctionDeclaration; - assertType(f.declaredElement!.type, 'int Function()'); + assertType(f.declaredElement2!.type, 'int Function()'); assertType(f.returnType!.typeOrThrow, 'int'); } @@ -3503,21 +3503,21 @@ var v = 0 void _assertClassFieldType(CompilationUnit unit, String className, String fieldName, String expected) { var node = _getClassField(unit, className, fieldName); - var type = node.declaredElement!.type; + var type = node.declaredElement2!.type; assertType(type, expected); } void _assertClassMethodReturnType(CompilationUnit unit, String className, String fieldName, String expected) { var node = _getClassMethod(unit, className, fieldName); - var type = node.declaredElement!.returnType; + var type = node.declaredElement2!.returnType; assertType(type, expected); } void _assertTopLevelVarType( CompilationUnit unit, String name, String expected) { VariableDeclaration variable = _getTopLevelVar(unit, name); - assertType(variable.declaredElement!.type, expected); + assertType(variable.declaredElement2!.type, expected); } void _expectCircularityError(EvaluationResultImpl evaluationResult) { diff --git a/pkg/analyzer/test/src/dart/analysis/index_test.dart b/pkg/analyzer/test/src/dart/analysis/index_test.dart index bff08f3788071..090bcaf06a4ae 100644 --- a/pkg/analyzer/test/src/dart/analysis/index_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/index_test.dart @@ -362,11 +362,11 @@ main() { '''); var intMethod = findNode.methodDeclaration('foo() {} // int'); - assertThat(intMethod.declaredElement!) + assertThat(intMethod.declaredElement2!) .isInvokedAt('foo(); // int ref', true); var doubleMethod = findNode.methodDeclaration('foo() {} // double'); - assertThat(doubleMethod.declaredElement!) + assertThat(doubleMethod.declaredElement2!) .isInvokedAt('foo(); // double ref', true); } @@ -1537,16 +1537,16 @@ main() { var intGetter = findNode.methodDeclaration('0; // int getter'); var intSetter = findNode.methodDeclaration('{} // int setter'); - assertThat(intGetter.declaredElement!) + assertThat(intGetter.declaredElement2!) .isReferencedAt('foo; // int getter ref', true); - assertThat(intSetter.declaredElement!) + assertThat(intSetter.declaredElement2!) .isReferencedAt('foo = 0; // int setter ref', true); var doubleGetter = findNode.methodDeclaration('0; // double getter'); var doubleSetter = findNode.methodDeclaration('{} // double setter'); - assertThat(doubleGetter.declaredElement!) + assertThat(doubleGetter.declaredElement2!) .isReferencedAt('foo; // double getter ref', true); - assertThat(doubleSetter.declaredElement!) + assertThat(doubleSetter.declaredElement2!) .isReferencedAt('foo = 0; // double setter ref', true); } diff --git a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart index 20e9c8eaad131..7000d88c4f7e1 100644 --- a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart @@ -25,7 +25,7 @@ mixin GetElementDeclarationMixin implements PubPackageResolutionTest { await resolveTestCode(r''' class A {} '''); - var element = findNode.classDeclaration('A').declaredElement!; + var element = findNode.classDeclaration('A').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ClassDeclaration; expect(node.name2.lexeme, 'A'); @@ -37,7 +37,7 @@ class A {} // 1 class A {} // 2 '''); { - var element = findNode.classDeclaration('A {} // 1').declaredElement!; + var element = findNode.classDeclaration('A {} // 1').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ClassDeclaration; expect(node.name2.lexeme, 'A'); @@ -48,7 +48,7 @@ class A {} // 2 } { - var element = findNode.classDeclaration('A {} // 2').declaredElement!; + var element = findNode.classDeclaration('A {} // 2').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ClassDeclaration; expect(node.name2.lexeme, 'A'); @@ -78,7 +78,7 @@ part 'a.dart'; await resolveTestCode(''' class {} '''); - var element = findNode.classDeclaration('class {}').declaredElement!; + var element = findNode.classDeclaration('class {}').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ClassDeclaration; expect(node.name2.lexeme, ''); @@ -112,14 +112,14 @@ class A { } '''); { - var unnamed = findNode.constructor('A();').declaredElement!; + var unnamed = findNode.constructor('A();').declaredElement2!; var result = await getElementDeclaration(unnamed); var node = result!.node as ConstructorDeclaration; expect(node.name2, isNull); } { - var named = findNode.constructor('A.named();').declaredElement!; + var named = findNode.constructor('A.named();').declaredElement2!; var result = await getElementDeclaration(named); var node = result!.node as ConstructorDeclaration; expect(node.name2!.lexeme, 'named'); @@ -134,7 +134,7 @@ class A { } '''); { - var element = findNode.constructor('A.named(); // 1').declaredElement!; + var element = findNode.constructor('A.named(); // 1').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name2!.lexeme, 'named'); @@ -145,7 +145,7 @@ class A { } { - var element = findNode.constructor('A.named(); // 2').declaredElement!; + var element = findNode.constructor('A.named(); // 2').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name2!.lexeme, 'named'); @@ -164,7 +164,7 @@ class A { } '''); { - var element = findNode.constructor('A(); // 1').declaredElement!; + var element = findNode.constructor('A(); // 1').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name2, isNull); @@ -175,7 +175,7 @@ class A { } { - var element = findNode.constructor('A(); // 2').declaredElement!; + var element = findNode.constructor('A(); // 2').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name2, isNull); @@ -221,7 +221,7 @@ enum MyEnum {a, b, c} await resolveTestCode(r''' extension E on int {} '''); - var element = findNode.extensionDeclaration('E').declaredElement!; + var element = findNode.extensionDeclaration('E').declaredElement2!; var result = await getElementDeclaration(element); var node = result!.node as ExtensionDeclaration; expect(node.name2!.lexeme, 'E'); diff --git a/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart b/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart index 08e34ba8589ef..75bf51f5d1838 100644 --- a/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart @@ -89,7 +89,7 @@ class A {} class A {} class B {} '''); - var element = findNode.classDeclaration('A').declaredElement!; + var element = findNode.classDeclaration('A').declaredElement2!; var resolvedUnit = (await helper.getResolvedUnitByElement(element))!; expect(resolvedUnit.unit.declarations, hasLength(2)); } diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart index ea1140fd26ec5..c5a53f29e4530 100644 --- a/pkg/analyzer/test/src/dart/analysis/session_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart @@ -595,14 +595,14 @@ class B2 extends X {} expect(aNode.name2.lexeme, 'A'); expect(aNode.offset, 16); expect(aNode.length, 16); - expect(aNode.declaredElement!.name, 'A'); + expect(aNode.declaredElement2!.name, 'A'); var bDeclaration = resolvedLibrary.getElementDeclaration(bClass)!; var bNode = bDeclaration.node as ClassDeclaration; expect(bNode.name2.lexeme, 'B'); expect(bNode.offset, 19); expect(bNode.length, 16); - expect(bNode.declaredElement!.name, 'B'); + expect(bNode.declaredElement2!.name, 'B'); } test_getResolvedLibrary_getElementDeclaration_notThisLibrary() async { @@ -635,7 +635,7 @@ int foo = 0; expect(fooNode.name2.lexeme, 'foo'); expect(fooNode.offset, 4); expect(fooNode.length, 7); - expect(fooNode.declaredElement!.name, 'foo'); + expect(fooNode.declaredElement2!.name, 'foo'); // Synthetic elements don't have nodes. expect(resolvedLibrary.getElementDeclaration(fooElement.getter!), isNull); diff --git a/pkg/analyzer/test/src/dart/element/element_test.dart b/pkg/analyzer/test/src/dart/element/element_test.dart index 5cb77a3814374..129ab744d5ee9 100644 --- a/pkg/analyzer/test/src/dart/element/element_test.dart +++ b/pkg/analyzer/test/src/dart/element/element_test.dart @@ -1514,8 +1514,10 @@ f() { } } '''); - expect(findNode.variableDeclaration('x = 0').declaredElement!.location, - isNot(findNode.variableDeclaration('x = 1').declaredElement!.location)); + expect( + findNode.variableDeclaration('x = 0').declaredElement2!.location, + isNot( + findNode.variableDeclaration('x = 1').declaredElement2!.location)); } } diff --git a/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart b/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart index 4ae2a74098e62..feceda67cfb02 100644 --- a/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart @@ -55,7 +55,7 @@ const a = 42; Function<@a T>()? x; '''); var T = findNode.typeParameter('T'); - var annotation = T.declaredElement!.metadata[0]; + var annotation = T.declaredElement2!.metadata[0]; expect(annotation.element, findElement.topGet('a')); } diff --git a/pkg/analyzer/test/src/dart/resolution/local_function_test.dart b/pkg/analyzer/test/src/dart/resolution/local_function_test.dart index a8c2186ca9b01..2aa51ca2988aa 100644 --- a/pkg/analyzer/test/src/dart/resolution/local_function_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/local_function_test.dart @@ -40,7 +40,7 @@ f() { error(HintCode.UNUSED_ELEMENT, 23, 1), ]); var node = findNode.functionDeclaration('g() {}'); - var element = node.declaredElement!; + var element = node.declaredElement2!; expect(element.name, 'g'); expect(element.nameOffset, 23); } diff --git a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart index 164479e0325b2..495a3e40df3bc 100644 --- a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart @@ -32,7 +32,7 @@ mixin M { assertElementName(gElement, 'g', offset: 20); var gNode = findNode.methodDeclaration('g =>'); - expect(gNode.declaredElement, same(gElement)); + expect(gNode.declaredElement2, same(gElement)); var fields = element.fields; expect(fields, hasLength(1)); @@ -55,7 +55,7 @@ mixin M { assertElementName(fooElement, 'foo', offset: 17); var fooNode = findNode.methodDeclaration('foo()'); - expect(fooNode.declaredElement, same(fooElement)); + expect(fooNode.declaredElement2, same(fooElement)); } test_accessor_setter() async { @@ -74,7 +74,7 @@ mixin M { assertElementName(sElement, 's=', offset: 21); var gNode = findNode.methodDeclaration('s(int _)'); - expect(gNode.declaredElement, same(sElement)); + expect(gNode.declaredElement2, same(sElement)); var fields = element.fields; expect(fields, hasLength(1)); @@ -208,7 +208,7 @@ mixin M { assertEnclosingElement(tElement, element); var tNode = findNode.typeParameter('T> {'); - assertElement(tNode.declaredElement, tElement); + assertElement(tNode.declaredElement2, tElement); var fields = element.fields; expect(fields, hasLength(1)); @@ -218,7 +218,7 @@ mixin M { assertEnclosingElement(fElement, element); var fNode = findNode.variableDeclaration('f;'); - assertElement(fNode.declaredElement, fElement); + assertElement(fNode.declaredElement2, fElement); assertNamedType(findNode.namedType('T f'), tElement, 'T'); diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart index e369510bac28d..8a60c8be17748 100644 --- a/pkg/analyzer/test/src/dart/resolution/resolution.dart +++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart @@ -689,7 +689,7 @@ mixin ResolutionTest implements ResourceProviderMixin { } else if (node is ConstructorReference) { return node.constructorName.staticElement; } else if (node is Declaration) { - return node.declaredElement; + return node.declaredElement2; } else if (node is ExtensionOverride) { return node.staticElement; } else if (node is FormalParameter) { diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/inference_update_1_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/inference_update_1_test.dart index 299ab7ce37197..dacf213dc694b 100644 --- a/pkg/analyzer/test/src/dart/resolution/type_inference/inference_update_1_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/type_inference/inference_update_1_test.dart @@ -106,7 +106,7 @@ test() { 'List Function(int Function()))'); assertType(findNode.simpleParameter('h)').declaredElement!.type, _isEnabled ? 'int Function()' : 'Object?'); - assertType(findNode.variableDeclaration('a =').declaredElement!.type, + assertType(findNode.variableDeclaration('a =').declaredElement2!.type, _isEnabled ? 'List' : 'List'); } @@ -153,7 +153,7 @@ test() { : 'List Function(List Function(int), int Function())'); assertType(findNode.simpleParameter('x)').declaredElement!.type, _isEnabled ? 'int' : 'Object?'); - assertType(findNode.variableDeclaration('a =').declaredElement!.type, + assertType(findNode.variableDeclaration('a =').declaredElement2!.type, _isEnabled ? 'List' : 'List'); } @@ -176,7 +176,7 @@ test() { : 'List Function(int Function(), List Function(int))'); assertType(findNode.simpleParameter('x)').declaredElement!.type, _isEnabled ? 'int' : 'Object?'); - assertType(findNode.variableDeclaration('a =').declaredElement!.type, + assertType(findNode.variableDeclaration('a =').declaredElement2!.type, _isEnabled ? 'List' : 'List'); } @@ -199,7 +199,7 @@ test() { : 'List Function(int, List Function(int))'); assertType(findNode.simpleParameter('x)').declaredElement!.type, _isEnabled ? 'int' : 'Object?'); - assertType(findNode.variableDeclaration('a =').declaredElement!.type, + assertType(findNode.variableDeclaration('a =').declaredElement2!.type, _isEnabled ? 'List' : 'List'); } diff --git a/pkg/analyzer/test/src/lint/linter/resolve_name_in_scope_test.dart b/pkg/analyzer/test/src/lint/linter/resolve_name_in_scope_test.dart index e619e0d32c924..96728c2e22204 100644 --- a/pkg/analyzer/test/src/lint/linter/resolve_name_in_scope_test.dart +++ b/pkg/analyzer/test/src/lint/linter/resolve_name_in_scope_test.dart @@ -713,7 +713,7 @@ void foo(int T) {} void foo(void Function(String T) b) {} '''); var node = findNode.simple('T)'); - var T = findNode.typeParameter('T>').declaredElement!; + var T = findNode.typeParameter('T>').declaredElement2!; _resultRequested(node, 'T', false, T); } diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart index a096a2513a1bf..da47fbb1dc5a5 100644 --- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart +++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart @@ -213,7 +213,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -224,7 +224,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -282,7 +282,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -337,7 +337,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -407,7 +407,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _writeNamedChildEntities(node); if (_withResolution) { _writeElement('constructorElement', node.constructorElement); - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -418,7 +418,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -473,7 +473,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -544,8 +544,8 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); - _writeType('declaredElementType', node.declaredElement!.type); + _writeElement('declaredElement', node.declaredElement2); + _writeType('declaredElementType', node.declaredElement2!.type); } }); } @@ -600,7 +600,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -638,7 +638,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -813,8 +813,8 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); - _writeType('declaredElementType', node.declaredElement!.type); + _writeElement('declaredElement', node.declaredElement2); + _writeType('declaredElementType', node.declaredElement2!.type); } }); } @@ -837,7 +837,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -1145,7 +1145,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -1182,7 +1182,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } @@ -1201,7 +1201,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { _writeNamedChildEntities(node); if (_withResolution) { - _writeElement('declaredElement', node.declaredElement); + _writeElement('declaredElement', node.declaredElement2); } }); } diff --git a/pkg/analyzer/test/utils.dart b/pkg/analyzer/test/utils.dart index 850866eb85061..6939069484a15 100644 --- a/pkg/analyzer/test/utils.dart +++ b/pkg/analyzer/test/utils.dart @@ -79,7 +79,7 @@ class AstFinder { /// with the given [className] in the given compilation [unit]. static FieldElement? getFieldInClassElement( CompilationUnit unit, String className, String fieldName) { - return getFieldInClass(unit, className, fieldName).declaredElement + return getFieldInClass(unit, className, fieldName).declaredElement2 as FieldElement; } @@ -155,7 +155,7 @@ class AstFinder { /// Return the top-level variable element with the given [name]. static TopLevelVariableElement getTopLevelVariableElement( CompilationUnit unit, String name) { - return getTopLevelVariable(unit, name).declaredElement + return getTopLevelVariable(unit, name).declaredElement2 as TopLevelVariableElement; } } diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart index 02ac7717974df..2098539e51192 100644 --- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart +++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart @@ -1910,13 +1910,13 @@ class _EnclosingElementFinder { var node = NodeLocator2(offset).searchWithin(target); while (node != null) { if (node is ClassDeclaration) { - enclosingClass = node.declaredElement; + enclosingClass = node.declaredElement2; } else if (node is ConstructorDeclaration) { - enclosingExecutable = node.declaredElement; + enclosingExecutable = node.declaredElement2; } else if (node is MethodDeclaration) { - enclosingExecutable = node.declaredElement; + enclosingExecutable = node.declaredElement2; } else if (node is FunctionDeclaration) { - enclosingExecutable = node.declaredElement; + enclosingExecutable = node.declaredElement2; } node = node.parent; } diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart index 80592ac0794c8..de84532374a47 100644 --- a/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart +++ b/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart @@ -123,9 +123,9 @@ class CompletionTarget { final unitMember = containingNode.thisOrAncestorOfType(); if (unitMember is ClassDeclaration) { - return unitMember.declaredElement; + return unitMember.declaredElement2; } else if (unitMember is MixinDeclaration) { - return unitMember.declaredElement; + return unitMember.declaredElement2; } else { return null; } @@ -134,7 +134,7 @@ class CompletionTarget { /// The enclosing [ExtensionElement], or `null` if not in an extension. late final ExtensionElement? enclosingExtensionElement = containingNode .thisOrAncestorOfType() - ?.declaredElement; + ?.declaredElement2; /// Compute the appropriate [CompletionTarget] for the given [offset] within /// the [entryPoint]. diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart index 69c9428b20fd6..3586088f27d05 100644 --- a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart +++ b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart @@ -556,7 +556,7 @@ class _OpTypeAstVisitor extends GeneralizingAstVisitor { } } } else if (parent is MethodDeclaration) { - type = parent.declaredElement?.returnType; + type = parent.declaredElement2?.returnType; if (type != null && type.isVoid) { optype.includeVoidReturnSuggestions = true; } 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 7aaab56e77678..7af1d923ce0fe 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 @@ -128,12 +128,12 @@ abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { if (forLoopParts is ForEachPartsWithDeclaration) { var loopVariable = forLoopParts.loopVariable; declaredLocalVar( - loopVariable.name, loopVariable.type, loopVariable.declaredElement!); + loopVariable.name, loopVariable.type, loopVariable.declaredElement2!); } else if (forLoopParts is ForPartsWithDeclarations) { var varList = forLoopParts.variables; for (var varDecl in varList.variables) { declaredLocalVar(varDecl.name2, varList.type, - varDecl.declaredElement as LocalVariableElement); + varDecl.declaredElement2 as LocalVariableElement); } } visitNode(node); @@ -145,12 +145,12 @@ abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { if (forLoopParts is ForEachPartsWithDeclaration) { var loopVariable = forLoopParts.loopVariable; declaredLocalVar( - loopVariable.name, loopVariable.type, loopVariable.declaredElement!); + loopVariable.name, loopVariable.type, loopVariable.declaredElement2!); } else if (forLoopParts is ForPartsWithDeclarations) { var varList = forLoopParts.variables; for (var varDecl in varList.variables) { declaredLocalVar(varDecl.name2, varList.type, - varDecl.declaredElement as LocalVariableElement); + varDecl.declaredElement2 as LocalVariableElement); } } visitNode(node); @@ -323,7 +323,7 @@ abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { for (var varDecl in varList.variables) { if (varDecl.end < offset) { declaredLocalVar(varDecl.name2, varList.type, - varDecl.declaredElement as LocalVariableElement); + varDecl.declaredElement2 as LocalVariableElement); } } } else if (stmt is FunctionDeclarationStatement) { diff --git a/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart b/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart index 77cc82547d347..54c1d0257175a 100644 --- a/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart +++ b/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart @@ -41,12 +41,12 @@ class InheritedReferenceContributor return; } var classDecl = _enclosingClass(target); - if (classDecl == null || classDecl.declaredElement == null) { + if (classDecl == null || classDecl.declaredElement2 == null) { return; } containingLibrary = request.result.libraryElement; _computeSuggestionsForClass2( - collector, target, classDecl.declaredElement!, optype); + collector, target, classDecl.declaredElement2!, optype); } /// Clients should not overload this function. @@ -67,10 +67,10 @@ class InheritedReferenceContributor } if (classElement == null) { var classDecl = _enclosingClass(target); - if (classDecl == null || classDecl.declaredElement == null) { + if (classDecl == null || classDecl.declaredElement2 == null) { return; } - classElement = classDecl.declaredElement; + classElement = classDecl.declaredElement2; } containingLibrary = request.result.libraryElement; _computeSuggestionsForClass2(collector, target, classElement!, optype, diff --git a/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart b/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart index 20d814285c267..3e8ceefc4a975 100644 --- a/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart +++ b/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart @@ -283,10 +283,10 @@ class _DartNavigationComputerVisitor extends RecursiveAstVisitor { // itself rather than linking to the class. var nameToken = node.name2; if (nameToken == null) { - computer._addRegionForNode(node.returnType, node.declaredElement); + computer._addRegionForNode(node.returnType, node.declaredElement2); } else { node.returnType.accept(this); - computer._addRegionForToken(nameToken, node.declaredElement); + computer._addRegionForToken(nameToken, node.declaredElement2); } node.parameters.accept(this); node.initializers.accept(this); @@ -328,7 +328,7 @@ class _DartNavigationComputerVisitor extends RecursiveAstVisitor { if (node.type == null) { var token = node.keyword; if (token != null && token.keyword == Keyword.VAR) { - var inferredType = node.declaredElement?.type; + var inferredType = node.declaredElement2?.type; if (inferredType is InterfaceType) { computer._addRegionForToken(token, inferredType.element2); } @@ -492,14 +492,14 @@ class _DartNavigationComputerVisitor extends RecursiveAstVisitor { /// the given list of [variables], or `null` if not all variable have the /// same inferred type. Element? getCommonElement(List variables) { - final firstType = variables[0].declaredElement?.type; + final firstType = variables[0].declaredElement2?.type; if (firstType is! InterfaceType) { return null; } var firstElement = firstType.element2; for (var i = 1; i < variables.length; i++) { - final type = variables[i].declaredElement?.type; + final type = variables[i].declaredElement2?.type; if (type is! InterfaceType) { return null; } diff --git a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart index 1337757a68649..abaa99d92f576 100644 --- a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart +++ b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart @@ -838,7 +838,7 @@ class MyClass {}'''; initializerWriter: () { builder.write('null'); }, - type: A.declaredElement?.instantiate( + type: A.declaredElement2?.instantiate( typeArguments: [], nullabilitySuffix: NullabilitySuffix.star, ), @@ -866,7 +866,7 @@ class MyClass {}'''; builder.addInsertion(11, (builder) { builder.writeLocalVariableDeclaration( 'foo', - type: A.declaredElement?.instantiate( + type: A.declaredElement2?.instantiate( typeArguments: [], nullabilitySuffix: NullabilitySuffix.star, ), @@ -903,7 +903,7 @@ class MyClass {}'''; builder.writeLocalVariableDeclaration( 'foo', isFinal: true, - type: A.declaredElement?.instantiate( + type: A.declaredElement2?.instantiate( typeArguments: [], nullabilitySuffix: NullabilitySuffix.star, ), @@ -1984,7 +1984,7 @@ class C extends B {} var classC = unit.declarations[2] as ClassDeclaration; var builder = DartLinkedEditBuilderImpl(MockEditBuilderImpl()); builder.addSuperTypesAsSuggestions( - classC.declaredElement?.instantiate( + classC.declaredElement2?.instantiate( typeArguments: [], nullabilitySuffix: NullabilitySuffix.star, ), diff --git a/pkg/nnbd_migration/lib/instrumentation.dart b/pkg/nnbd_migration/lib/instrumentation.dart index 2807b4b480865..d3b1911988c1b 100644 --- a/pkg/nnbd_migration/lib/instrumentation.dart +++ b/pkg/nnbd_migration/lib/instrumentation.dart @@ -96,7 +96,7 @@ class CodeReference { if (nodeName != null) { parts.add(nodeName); } else if (parts.isEmpty && node is VariableDeclarationList) { - parts.add(node.variables.first.declaredElement!.name); + parts.add(node.variables.first.declaredElement2!.name); } node = node.parent; } @@ -106,9 +106,9 @@ class CodeReference { static String? _computeNodeDeclarationName(AstNode node) { if (node is ExtensionDeclaration) { - return node.declaredElement?.name ?? ''; + return node.declaredElement2?.name ?? ''; } else if (node is Declaration) { - var name = node.declaredElement?.name; + var name = node.declaredElement2?.name; return name == '' ? '' : name; } else { return null; diff --git a/pkg/nnbd_migration/lib/src/edge_builder.dart b/pkg/nnbd_migration/lib/src/edge_builder.dart index a359ede936c20..6464e85ff3ddc 100644 --- a/pkg/nnbd_migration/lib/src/edge_builder.dart +++ b/pkg/nnbd_migration/lib/src/edge_builder.dart @@ -669,7 +669,7 @@ class EdgeBuilder extends GeneralizingAstVisitor node is ExtensionDeclaration || node is MixinDeclaration); try { - _currentClassOrExtension = node.declaredElement; + _currentClassOrExtension = node.declaredElement2; List members; if (node is ClassDeclaration) { @@ -685,8 +685,9 @@ class EdgeBuilder extends GeneralizingAstVisitor if (member is FieldDeclaration && _variables.getLateHint(source, member.fields) == null) for (var field in member.fields.variables) - if (!field.declaredElement!.isStatic && field.initializer == null) - (field.declaredElement as FieldElement?) + if (!field.declaredElement2!.isStatic && + field.initializer == null) + (field.declaredElement2 as FieldElement?) }; if (_currentClassOrExtension is ClassElement && (_currentClassOrExtension as ClassElement) @@ -709,7 +710,7 @@ class EdgeBuilder extends GeneralizingAstVisitor _dispatch(node.superclass); _dispatch(node.implementsClause); _dispatch(node.withClause); - var classElement = node.declaredElement!; + var classElement = node.declaredElement2!; var supertype = classElement.supertype!; var superElement = supertype.element2; for (var constructorElement in classElement.constructors) { @@ -803,7 +804,7 @@ class EdgeBuilder extends GeneralizingAstVisitor _dispatch(node.redirectedConstructor?.type.typeArguments); _handleExecutableDeclaration( node, - node.declaredElement!, + node.declaredElement2!, node.metadata, null, node.parameters, @@ -994,7 +995,7 @@ class EdgeBuilder extends GeneralizingAstVisitor _flowAnalysis = null; _assignedVariables = null; } - var declaredElement = node.declaredElement; + var declaredElement = node.declaredElement2; if (declaredElement is PropertyAccessorElement) { if (declaredElement.isGetter) { var setter = declaredElement.correspondingSetter; @@ -1364,12 +1365,12 @@ class EdgeBuilder extends GeneralizingAstVisitor if (BuiltValueTransformer.findNullableAnnotation(node) != null) { _graph.makeNullable( _variables - .decoratedElementType(node.declaredElement!.declaration) + .decoratedElementType(node.declaredElement2!.declaration) .returnType! .node!, BuiltValueNullableOrigin(source, node)); } - _handleExecutableDeclaration(node, node.declaredElement!, node.metadata, + _handleExecutableDeclaration(node, node.declaredElement2!, node.metadata, node.returnType, node.parameters, null, node.body, null); _dispatch(node.typeParameters); return null; @@ -1891,7 +1892,7 @@ class EdgeBuilder extends GeneralizingAstVisitor var nullabilityNode = NullabilityNode.forInferredType(target); var class_ = node.thisOrAncestorOfType()!; var decoratedSupertype = _decoratedClassHierarchy!.getDecoratedSupertype( - class_.declaredElement!, callee.enclosingElement3); + class_.declaredElement2!, callee.enclosingElement3); var typeArguments = decoratedSupertype.typeArguments; Iterable typeArgumentTypes; typeArgumentTypes = typeArguments.map((t) => t!.type); @@ -1995,7 +1996,7 @@ class EdgeBuilder extends GeneralizingAstVisitor for (var variable in node.variables) { _dispatchList(variable.metadata); var initializer = variable.initializer; - var declaredElement = variable.declaredElement!; + var declaredElement = variable.declaredElement2!; if (isTopLevel) { assert(_flowAnalysis == null); _createFlowAnalysis(variable, null); @@ -2067,7 +2068,7 @@ class EdgeBuilder extends GeneralizingAstVisitor // // We cannot make a hard edge from y to never in this case. if (node.variables.length == 1) { - _postDominatedLocals.add(node.variables.single.declaredElement!); + _postDominatedLocals.add(node.variables.single.declaredElement2!); } return null; @@ -2893,7 +2894,7 @@ class EdgeBuilder extends GeneralizingAstVisitor Element? lhsElement; DecoratedType? lhsType; if (parts is ForEachPartsWithDeclaration) { - var variableElement = parts.loopVariable.declaredElement!; + var variableElement = parts.loopVariable.declaredElement2!; _flowAnalysis!.declare(variableElement, true); lhsElement = variableElement; _dispatch(parts.loopVariable.type); diff --git a/pkg/nnbd_migration/lib/src/fix_builder.dart b/pkg/nnbd_migration/lib/src/fix_builder.dart index e26d9fb95142e..eee71d2c93be7 100644 --- a/pkg/nnbd_migration/lib/src/fix_builder.dart +++ b/pkg/nnbd_migration/lib/src/fix_builder.dart @@ -1105,7 +1105,7 @@ class _FixBuilderPostVisitor extends GeneralizingAstVisitor bool explicitTypeNeeded = false; for (var variableDeclaration in node.variables) { var neededType = _fixBuilder - ._computeMigratedType(variableDeclaration.declaredElement!); + ._computeMigratedType(variableDeclaration.declaredElement2!); neededTypes.add(neededType); var inferredType = variableDeclaration.initializer?.staticType ?? _fixBuilder.typeProvider.dynamicType; @@ -1143,7 +1143,7 @@ class _FixBuilderPostVisitor extends GeneralizingAstVisitor // Check if the nullability node for a single variable declaration has been // declared to be late. if (node.variables.length == 1) { - var variableElement = node.variables.single.declaredElement!; + var variableElement = node.variables.single.declaredElement2!; var lateCondition = _fixBuilder._variables! .decoratedElementType(variableElement) .node! diff --git a/pkg/nnbd_migration/lib/src/node_builder.dart b/pkg/nnbd_migration/lib/src/node_builder.dart index c381411969bb8..f33b20fc94946 100644 --- a/pkg/nnbd_migration/lib/src/node_builder.dart +++ b/pkg/nnbd_migration/lib/src/node_builder.dart @@ -131,7 +131,7 @@ class NodeBuilder extends GeneralizingAstVisitor node.typeParameters?.accept(this); node.nativeClause?.accept(this); node.members.accept(this); - var classElement = node.declaredElement!; + var classElement = node.declaredElement2!; _handleSupertypeClauses(node, classElement, node.extendsClause?.superclass, node.withClause, node.implementsClause, null); var constructors = classElement.constructors; @@ -156,7 +156,7 @@ class NodeBuilder extends GeneralizingAstVisitor DecoratedType? visitClassTypeAlias(ClassTypeAlias node) { node.metadata.accept(this); node.typeParameters?.accept(this); - var classElement = node.declaredElement!; + var classElement = node.declaredElement2!; _handleSupertypeClauses(node, classElement, node.superclass, node.withClause, node.implementsClause, null); for (var constructorElement in classElement.constructors) { @@ -188,7 +188,7 @@ class NodeBuilder extends GeneralizingAstVisitor DecoratedType? visitConstructorDeclaration(ConstructorDeclaration node) { _handleExecutableDeclaration( node, - node.declaredElement!, + node.declaredElement2!, node.metadata, null, null, @@ -211,7 +211,7 @@ class NodeBuilder extends GeneralizingAstVisitor @override DecoratedType? visitDeclaredIdentifier(DeclaredIdentifier node) { node.metadata.accept(this); - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; var target = NullabilityNodeTarget.element(declaredElement); DecoratedType? type = _pushNullabilityNodeTarget(target, () => node.type?.accept(this)); @@ -220,7 +220,7 @@ class NodeBuilder extends GeneralizingAstVisitor _typeProvider, declaredElement.type, _graph, target); instrumentation?.implicitType(source, node, type); } - _variables!.recordDecoratedElementType(node.declaredElement, type); + _variables!.recordDecoratedElementType(node.declaredElement2, type); return type; } @@ -248,7 +248,7 @@ class NodeBuilder extends GeneralizingAstVisitor @override DecoratedType? visitEnumDeclaration(EnumDeclaration node) { node.metadata.accept(this); - var classElement = node.declaredElement!; + var classElement = node.declaredElement2!; _variables!.recordDecoratedElementType( classElement, DecoratedType(classElement.thisType, _graph.never)); @@ -260,7 +260,7 @@ class NodeBuilder extends GeneralizingAstVisitor } for (var item in node.constants) { - var declaredElement = item.declaredElement!; + var declaredElement = item.declaredElement2!; var target = NullabilityNodeTarget.element(declaredElement); _variables!.recordDecoratedElementType(declaredElement, DecoratedType(classElement.thisType, makeNonNullNode(target, item))); @@ -286,7 +286,7 @@ class NodeBuilder extends GeneralizingAstVisitor var type = _pushNullabilityNodeTarget( NullabilityNodeTarget.text('extended type'), () => node.extendedType.accept(this)); - _variables!.recordDecoratedElementType(node.declaredElement, type); + _variables!.recordDecoratedElementType(node.declaredElement2, type); node.members.accept(this); return null; } @@ -317,7 +317,7 @@ class NodeBuilder extends GeneralizingAstVisitor DecoratedType? visitFunctionDeclaration(FunctionDeclaration node) { _handleExecutableDeclaration( node, - node.declaredElement!, + node.declaredElement2!, node.metadata, node.returnType, node.functionExpression.typeParameters, @@ -350,7 +350,7 @@ class NodeBuilder extends GeneralizingAstVisitor @override DecoratedType? visitFunctionTypeAlias(FunctionTypeAlias node) { node.metadata.accept(this); - var declaredElement = node.declaredElement!; + var declaredElement = node.declaredElement2!; var functionElement = declaredElement.aliasedElement as GenericFunctionTypeElement; var functionType = functionElement.type; @@ -403,12 +403,12 @@ class NodeBuilder extends GeneralizingAstVisitor node.metadata.accept(this); DecoratedType? decoratedFunctionType; node.typeParameters?.accept(this); - var target = NullabilityNodeTarget.element(node.declaredElement!); + var target = NullabilityNodeTarget.element(node.declaredElement2!); _pushNullabilityNodeTarget(target, () { decoratedFunctionType = node.functionType!.accept(this); }); _variables!.recordDecoratedElementType( - (node.declaredElement as TypeAliasElement).aliasedElement, + (node.declaredElement2 as TypeAliasElement).aliasedElement, decoratedFunctionType); return null; } @@ -431,7 +431,7 @@ class NodeBuilder extends GeneralizingAstVisitor @override DecoratedType? visitMethodDeclaration(MethodDeclaration node) { - var declaredElement = node.declaredElement; + var declaredElement = node.declaredElement2; var decoratedType = _handleExecutableDeclaration( node, declaredElement!, @@ -478,7 +478,7 @@ class NodeBuilder extends GeneralizingAstVisitor node.metadata.accept(this); node.typeParameters?.accept(this); node.members.accept(this); - _handleSupertypeClauses(node, node.declaredElement!, null, null, + _handleSupertypeClauses(node, node.declaredElement2!, null, null, node.implementsClause, node.onClause); return null; } @@ -616,7 +616,7 @@ class NodeBuilder extends GeneralizingAstVisitor @override DecoratedType? visitTypeParameter(TypeParameter node) { - var element = node.declaredElement!; + var element = node.declaredElement2!; var bound = node.bound; DecoratedType? decoratedBound; var target = NullabilityNodeTarget.typeParameterBound(element); @@ -638,7 +638,7 @@ class NodeBuilder extends GeneralizingAstVisitor node.metadata.accept(this); var typeAnnotation = node.type; var declaredType = _pushNullabilityNodeTarget( - NullabilityNodeTarget.element(node.variables.first.declaredElement!), + NullabilityNodeTarget.element(node.variables.first.declaredElement2!), () => typeAnnotation?.accept(this)); var hint = getPrefixHint(node.firstTokenAfterCommentAndMetadata); if (hint != null && hint.kind == HintCommentKind.late_) { @@ -650,7 +650,7 @@ class NodeBuilder extends GeneralizingAstVisitor var parent = node.parent; for (var variable in node.variables) { variable.metadata.accept(this); - var declaredElement = variable.declaredElement; + var declaredElement = variable.declaredElement2; var type = declaredType; if (type == null) { var target = NullabilityNodeTarget.element(declaredElement!); @@ -902,7 +902,7 @@ class NodeBuilder extends GeneralizingAstVisitor void _handleSupertypeClauses( NamedCompilationUnitMember astNode, - ClassElement declaredElement, + InterfaceElement declaredElement, NamedType? superclass, WithClause? withClause, ImplementsClause? implementsClause, diff --git a/pkg/nnbd_migration/lib/src/variables.dart b/pkg/nnbd_migration/lib/src/variables.dart index ce1a3682df652..8c42aef69ea6f 100644 --- a/pkg/nnbd_migration/lib/src/variables.dart +++ b/pkg/nnbd_migration/lib/src/variables.dart @@ -203,11 +203,11 @@ class Variables { (_conditionalDiscards[source] ??= {})[node.offset] = conditionalDiscard; } - /// Associates a [class_] with decorated type information for the superclasses + /// Associates a [interface] with decorated type information for the superclasses /// it directly implements/extends/etc. - void recordDecoratedDirectSupertypes(ClassElement class_, + void recordDecoratedDirectSupertypes(InterfaceElement interface, Map decoratedDirectSupertypes) { - _decoratedDirectSupertypes[class_] = decoratedDirectSupertypes; + _decoratedDirectSupertypes[interface] = decoratedDirectSupertypes; } /// Associates decorated type information with the given [element]. diff --git a/pkg/nnbd_migration/test/migration_visitor_test_base.dart b/pkg/nnbd_migration/test/migration_visitor_test_base.dart index 497717179a4ca..27ef00a47299f 100644 --- a/pkg/nnbd_migration/test/migration_visitor_test_base.dart +++ b/pkg/nnbd_migration/test/migration_visitor_test_base.dart @@ -377,7 +377,7 @@ class MigrationVisitorTestBase extends AbstractSingleUnitTest with EdgeTester { /// Gets the [DecoratedType] associated with the constructor declaration whose /// name matches [search]. DecoratedType decoratedConstructorDeclaration(String search) => variables - .decoratedElementType(findNode.constructor(search).declaredElement!); + .decoratedElementType(findNode.constructor(search).declaredElement2!); Map decoratedDirectSupertypes(String name) { return variables.decoratedDirectSupertypes(findElement.classOrMixin(name)); @@ -394,7 +394,7 @@ class MigrationVisitorTestBase extends AbstractSingleUnitTest with EdgeTester { /// name matches [search]. DecoratedType decoratedMethodType(String search) => variables.decoratedElementType( - findNode.methodDeclaration(search).declaredElement!); + findNode.methodDeclaration(search).declaredElement2!); /// Gets the [DecoratedType] associated with the type annotation whose text /// is [text]. diff --git a/pkg/nnbd_migration/test/node_builder_test.dart b/pkg/nnbd_migration/test/node_builder_test.dart index 609d18bbcbdd5..a3d310bc170ef 100644 --- a/pkg/nnbd_migration/test/node_builder_test.dart +++ b/pkg/nnbd_migration/test/node_builder_test.dart @@ -24,11 +24,11 @@ class NodeBuilderTest extends MigrationVisitorTestBase { /// name matches [search]. DecoratedType decoratedFunctionType(String search) => variables.decoratedElementType( - findNode.functionDeclaration(search).declaredElement!); + findNode.functionDeclaration(search).declaredElement2!); DecoratedType? decoratedTypeParameterBound(String search) => variables.decoratedTypeParameterBound( - findNode.typeParameter(search).declaredElement!); + findNode.typeParameter(search).declaredElement2!); Future test_catch_clause_with_stacktrace_with_on() async { await analyze(''' @@ -724,7 +724,7 @@ class C { .fieldDeclaration('f') .fields .variables[0] - .declaredElement!), + .declaredElement2!), same(decoratedType)); } @@ -1376,7 +1376,7 @@ var x = [1]; .topLevelVariableDeclaration('x') .variables .variables[0] - .declaredElement!) + .declaredElement2!) .typeArguments[0]! .node!; expect(node.hintActions, isEmpty); @@ -1391,7 +1391,7 @@ var x = 1; .topLevelVariableDeclaration('x') .variables .variables[0] - .declaredElement!) + .declaredElement2!) .node!; expect(node.hintActions, isEmpty); } From 21bc7377aac4237a54e08d07fc83426ef703762e Mon Sep 17 00:00:00 2001 From: Nicholas Shahan Date: Tue, 9 Aug 2022 17:58:06 +0000 Subject: [PATCH 3/6] [ddc] Avoid tagging late local lowering methods Late local variables are lowered to local get and set functions. These functions should never need to be tagged with their types. Avoids including and executing unneeded code in the compiled output. Change-Id: I0c7448147a2b5493f818a66dcebae827c36c5330 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253825 Commit-Queue: Nicholas Shahan Reviewed-by: Anna Gringauze --- pkg/dev_compiler/lib/src/kernel/compiler.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart index bf38b068bf175..f6b82cd189ae3 100644 --- a/pkg/dev_compiler/lib/src/kernel/compiler.dart +++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart @@ -6434,8 +6434,15 @@ class ProgramCompiler extends ComputeOnceConstantVisitor ]); bool _reifyFunctionType(FunctionNode f) { - if (!_currentLibrary!.importUri.isScheme('dart')) return true; var parent = f.parent; + if (parent is FunctionDeclaration && + (isLateLoweredLocalGetter(parent.variable) || + isLateLoweredLocalSetter(parent.variable))) { + // Late local variables are lowered to local get and set functions. + // These functions should never need to be tagged with their types. + return false; + } + if (!_currentLibrary!.importUri.isScheme('dart')) return true; // SDK libraries can skip reification if they request it. bool reifyFunctionTypes(Expression a) => From e3a91f01d30acc1d8f26c47c272ad31edb51960a Mon Sep 17 00:00:00 2001 From: Mark Zhou Date: Tue, 9 Aug 2022 18:04:45 +0000 Subject: [PATCH 4/6] [ddc] Adding a header comment to DDC-compiled JS. Displays platform compilation information, module name, and some flags. Example output: // Generated by DDC, the Dart Development Compiler (to JavaScript). // Version: 2.19.0-edge.4d13ff534d0c078ce1140cee1f7f2e112b9df96b (be) (Thu Jul 21 02:51:32 2022 +0000) on "macos_arm64" // Module: hello_world // Flags: canary, soundNullSafety(false), enableAsserts(true) // Experiments: someExperiment Change-Id: I5966b9653e17dd5ccd897135f8264598dff52ea7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253605 Reviewed-by: Nicholas Shahan Commit-Queue: Mark Zhou --- .../lib/src/compiler/module_builder.dart | 6 ++--- .../lib/src/compiler/shared_command.dart | 5 +++- .../lib/src/compiler/shared_compiler.dart | 6 ++--- pkg/dev_compiler/lib/src/js_ast/nodes.dart | 8 ++++-- pkg/dev_compiler/lib/src/kernel/compiler.dart | 27 ++++++++++++++++++- 5 files changed, 42 insertions(+), 10 deletions(-) diff --git a/pkg/dev_compiler/lib/src/compiler/module_builder.dart b/pkg/dev_compiler/lib/src/compiler/module_builder.dart index eeb78eaf4ac8f..d150f70ee893e 100644 --- a/pkg/dev_compiler/lib/src/compiler/module_builder.dart +++ b/pkg/dev_compiler/lib/src/compiler/module_builder.dart @@ -298,7 +298,7 @@ class DdcModuleBuilder extends _ModuleBuilder { resultModule, SharedCompiler.metricsLocationID ]); - return Program([moduleDef]); + return Program([...module.header, moduleDef]); } } @@ -345,7 +345,7 @@ class CommonJSModuleBuilder extends _ModuleBuilder { } } - return Program(statements); + return Program([...module.header, ...statements]); } } @@ -455,7 +455,7 @@ class AmdModuleBuilder extends _ModuleBuilder { var block = js.statement( 'define(#, #);', [ArrayInitializer(dependencies), resultModule]); - return Program([block]); + return Program([...module.header, block]); } } diff --git a/pkg/dev_compiler/lib/src/compiler/shared_command.dart b/pkg/dev_compiler/lib/src/compiler/shared_command.dart index ffa5832db7108..15773935a4c9a 100644 --- a/pkg/dev_compiler/lib/src/compiler/shared_command.dart +++ b/pkg/dev_compiler/lib/src/compiler/shared_command.dart @@ -91,6 +91,9 @@ class SharedCompilerOptions { final bool soundNullSafety; + /// Whether or not the `--canary` flag was specified during compilation. + final bool canaryFeatures; + /// A canary feature that enables a new runtime type representation. final bool newRuntimeTypes; @@ -110,7 +113,7 @@ class SharedCompilerOptions { this.multiRootOutputPath, this.experiments = const {}, this.soundNullSafety = false, - bool canaryFeatures = false}) + this.canaryFeatures = false}) : // Current canary features. newRuntimeTypes = canaryFeatures; diff --git a/pkg/dev_compiler/lib/src/compiler/shared_compiler.dart b/pkg/dev_compiler/lib/src/compiler/shared_compiler.dart index 76ced984ee979..8ba2a397ee3d9 100644 --- a/pkg/dev_compiler/lib/src/compiler/shared_compiler.dart +++ b/pkg/dev_compiler/lib/src/compiler/shared_compiler.dart @@ -732,8 +732,8 @@ abstract class SharedCompiler items, String moduleName) { + js_ast.Program finishModule(List items, String moduleName, + {List header = const []}) { // TODO(jmesserly): there's probably further consolidation we can do // between DDC's two backends, by moving more code into this method, as the // code between `startModule` and `finishModule` is very similar in both. @@ -747,7 +747,7 @@ abstract class SharedCompiler body; + // Top-level comments prepended to the compiled program. + final List header; + /// The module's own name. /// /// This is not used in ES6, but is provided to allow module lowering. final String? name; - Program(this.body, {this.scriptTag, this.name}); + Program(this.body, {this.scriptTag, this.name, this.header = const []}); @override T accept(NodeVisitor visitor) => visitor.visitProgram(this); @@ -382,7 +385,8 @@ class Program extends Node { } @override - Program _clone() => Program(body); + Program _clone() => + Program(body, scriptTag: scriptTag, name: name, header: header); } abstract class Statement extends ModuleItem { diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart index f6b82cd189ae3..110dc18057367 100644 --- a/pkg/dev_compiler/lib/src/kernel/compiler.dart +++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart @@ -4,6 +4,7 @@ import 'dart:collection'; import 'dart:convert'; +import 'dart:io' as io; import 'dart:math' show max, min; import 'package:collection/collection.dart' @@ -493,7 +494,8 @@ class ProgramCompiler extends ComputeOnceConstantVisitor // Emit the hoisted type table cache variables items.addAll(_typeTable.dischargeBoundTypes()); - var module = finishModule(items, _options.moduleName); + var module = finishModule(items, _options.moduleName, + header: generateCompilationHeader()); // Mark as finished for incremental mode, so it is safe to // switch to the incremental mode for expression compilation. @@ -6709,6 +6711,29 @@ class ProgramCompiler extends ComputeOnceConstantVisitor js_ast.Expression visitFunctionTearOff(FunctionTearOff node) { return _emitPropertyGet(node.receiver, null, 'call'); } + + /// Creates header comments with helpful compilation information. + List generateCompilationHeader() { + var headerOptions = [ + if (_options.canaryFeatures) 'canary', + 'soundNullSafety(${_options.soundNullSafety})', + 'enableAsserts(${_options.enableAsserts})', + ]; + var enabledExperiments = []; + _options.experiments.forEach((key, value) { + if (value) enabledExperiments.add(key); + }); + var header = [ + js_ast.Comment( + 'Generated by DDC, the Dart Development Compiler (to JavaScript).'), + js_ast.Comment('Version: ${io.Platform.version}'), + js_ast.Comment('Module: ${_options.moduleName}'), + js_ast.Comment('Flags: ${headerOptions.join(', ')}'), + if (enabledExperiments.isNotEmpty) + js_ast.Comment('Experiments: ${enabledExperiments.join(', ')}') + ]; + return header; + } } bool _isInlineJSFunction(Statement? body) { From fa47a0547cf39e25e1fb06f95ef29d8dd7f314b8 Mon Sep 17 00:00:00 2001 From: Nicholas Shahan Date: Tue, 9 Aug 2022 18:22:55 +0000 Subject: [PATCH 5/6] [web] Make environment nullable in more places It appears that the environment was intended to be nullable in some type constructions. DDC running in weak mode can fail when null is passed as an argument that is typed to be non-nullable. Change-Id: I2c67efacc1166e6053ef8d8d7820de2c022c5e1b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253706 Reviewed-by: Mayank Patke Commit-Queue: Nicholas Shahan --- sdk/lib/_internal/js_shared/lib/rti.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sdk/lib/_internal/js_shared/lib/rti.dart b/sdk/lib/_internal/js_shared/lib/rti.dart index 6e2b265ce8206..8708600d21f16 100644 --- a/sdk/lib/_internal/js_shared/lib/rti.dart +++ b/sdk/lib/_internal/js_shared/lib/rti.dart @@ -2304,7 +2304,7 @@ class _Parser { // Field accessors for the parser. static Object universe(Object? parser) => JS('', '#.u', parser); - static Rti environment(Object? parser) => JS('Rti', '#.e', parser); + static Rti? environment(Object? parser) => JS('Rti|Null', '#.e', parser); static String recipe(Object? parser) => JS('String', '#.r', parser); static Object stack(Object? parser) => JS('', '#.s', parser); static int position(Object? parser) => JS('int', '#.p', parser); @@ -2479,7 +2479,7 @@ class _Parser { push( stack, _Universe.evalTypeVariable( - universe(parser), environment(parser), string)); + universe(parser), environment(parser)!, string)); } else { push(stack, string); } @@ -2588,19 +2588,19 @@ class _Parser { /// Coerce a stack item into an Rti object. Strings are converted to interface /// types, integers are looked up in the type environment. - static Rti toType(Object? universe, Rti environment, Object? item) { + static Rti toType(Object? universe, Rti? environment, Object? item) { if (_Utils.isString(item)) { String name = _Utils.asString(item); return _Universe._lookupInterfaceRti( universe, name, _Universe.sharedEmptyArray(universe)); } else if (_Utils.isNum(item)) { - return _Parser.indexToType(universe, environment, _Utils.asInt(item)); + return _Parser.indexToType(universe, environment!, _Utils.asInt(item)); } else { return _Utils.asRti(item); } } - static void toTypes(Object? universe, Rti environment, Object? items) { + static void toTypes(Object? universe, Rti? environment, Object? items) { int length = _Utils.arrayLength(items); for (int i = 0; i < length; i++) { var item = _Utils.arrayAt(items, i); @@ -2609,7 +2609,7 @@ class _Parser { } } - static void toTypesNamed(Object? universe, Rti environment, Object? items) { + static void toTypesNamed(Object? universe, Rti? environment, Object? items) { int length = _Utils.arrayLength(items); assert(_Utils.isMultipleOf(length, 3)); for (int i = 2; i < length; i += 3) { From 709b878c075911ef84e63185b58ac993f6cd66a9 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Tue, 9 Aug 2022 18:39:46 +0000 Subject: [PATCH 6/6] Revert "[deps] rollback the rev of package:http" This reverts commit 947a1f962721c6467cf7fa2c649b1bfaa3da4195. Reason for revert: we now know how to import this change Original change's description: > [deps] rollback the rev of package:http > > Bug: b/241795598 > Change-Id: I3b78dbdea3ba343f42ab3a59eb41bc4df605ee6c > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254061 > Reviewed-by: Oleh Prypin > Commit-Queue: Oleh Prypin Change-Id: I5e5d75af65ed51fd2e56bb6682b1cc3d9f99dafb Bug: b/241795598 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254223 Reviewed-by: Oleh Prypin Commit-Queue: Oleh Prypin Reviewed-by: Nate Bosch Reviewed-by: Devon Carew --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 5b3f14b1c5818..bc10386c24732 100644 --- a/DEPS +++ b/DEPS @@ -117,7 +117,7 @@ vars = { "html_rev": "8243e967caad9932c13971af3b2a7c8f028383d5", "http_multi_server_rev": "20bf079c8955d1250a45afb9cb096472a724a551", "http_parser_rev": "b968f7ddde0588273a6cbd1d2eb6569f418606ac", - "http_rev": "5055b684ae45fb141a106ef6ced988aa37ed0ea6", # b/241795598 + "http_rev": "45f91f23847d51df53bb704bd25a7f64fb117081", "icu_rev": "81d656878ec611cb0b42d52c82e9dae93920d9ba", "intl_rev": "7e3a1bbdeff241323f56295d8991c004bef815e6", "jinja2_rev": "2222b31554f03e62600cd7e383376a7c187967a1",