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 <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Konstantin Shcheglov
2022-08-09 17:26:06 +00:00
committed by Commit Bot
parent f9ba5c03df
commit f4c009dc33
136 changed files with 988 additions and 855 deletions
@@ -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;
}
@@ -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<VariableDeclaration> fields = classMember.fields.variables;
for (var field in fields) {
_addOverride(field.name2, field.declaredElement);
_addOverride(field.name2, field.declaredElement2);
}
}
}
@@ -28,7 +28,7 @@ class _DartUnitOccurrencesComputerVisitor extends RecursiveAstVisitor<void> {
@override
void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
_addOccurrence(node.declaredElement!, node.name2.offset);
_addOccurrence(node.declaredElement2!, node.name2.offset);
super.visitEnumConstantDeclaration(node);
}
@@ -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,
@@ -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++;
@@ -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;
}
@@ -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);
@@ -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<ClassDeclaration>();
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);
@@ -23,7 +23,7 @@ class RedirectingContributor extends DartCompletionContributor {
// C() : this.^
var containingConstructor =
parent.thisOrAncestorOfType<ConstructorDeclaration>();
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<ConstructorDeclaration>();
var constructorElement = containingConstructor?.declaredElement;
var constructorElement = containingConstructor?.declaredElement2;
var classElement = constructorElement?.enclosingElement3;
var libraryElement = request.libraryElement;
if (classElement == null) {
@@ -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}) {
@@ -27,7 +27,7 @@ class SuperFormalContributor extends DartCompletionContributor {
return;
}
var constructorElement = constructor.declaredElement;
var constructorElement = constructor.declaredElement2;
constructorElement as ConstructorElementImpl;
var superConstructor = constructorElement.superConstructor;
@@ -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;
}
@@ -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;
@@ -36,7 +36,7 @@ class AddCallSuper extends CorrectionProducer {
if (methodDeclaration == null) return;
var classElement = methodDeclaration
.thisOrAncestorOfType<ClassDeclaration>()
?.declaredElement;
?.declaredElement2;
if (classElement == null) return;
var name = Name(classElement.library.source.uri, node.name);
@@ -40,7 +40,8 @@ class AddDiagnosticPropertyReference extends CorrectionProducer {
final classDeclaration = node.thisOrAncestorOfType<ClassDeclaration>();
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;
}
@@ -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;
@@ -28,7 +28,7 @@ class AddFieldFormalParameters extends CorrectionProducer {
return;
}
var superType = classNode.declaredElement!.supertype;
var superType = classNode.declaredElement2!.supertype;
if (superType == null) {
return;
}
@@ -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;
}
@@ -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) {
@@ -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;
@@ -104,7 +104,7 @@ class AddTypeAnnotation extends CorrectionProducer {
var targetClassDeclaration =
target.thisOrAncestorOfType<ClassDeclaration>();
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;
}
@@ -141,7 +141,7 @@ class ChangeTo extends CorrectionProducer {
if (target == null) {
var clazz = this.node.thisOrAncestorOfType<ClassDeclaration>();
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<ClassDeclaration>();
if (targetClassNode == null) return;
var targetClassElement = targetClassNode.declaredElement!;
var targetClassElement = targetClassNode.declaredElement2!;
var superType = targetClassElement.supertype;
if (superType == null) return;
@@ -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');
}
@@ -36,7 +36,7 @@ class ConvertClassToMixin extends CorrectionProducer {
var superclassConstraints = <InterfaceType>[];
var interfaces = <InterfaceType>[];
var classElement = classDeclaration.declaredElement!;
var classElement = classDeclaration.declaredElement2!;
for (var type in classElement.mixins) {
if (referencedClasses.contains(type.element2)) {
superclassConstraints.add(type);
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
@@ -65,7 +65,7 @@ class CreateMethod extends CorrectionProducer {
}
final classDecl = memberDecl.thisOrAncestorOfType<ClassDeclaration>();
if (classDecl != null) {
final classElement = classDecl.declaredElement!;
final classElement = classDecl.declaredElement2!;
var missingEquals = memberDecl is FieldDeclaration ||
(memberDecl as MethodDeclaration).name2.lexeme == 'hashCode';
@@ -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
@@ -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)) {
@@ -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!);
}
}
@@ -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<void> {
methodDeclaration?.thisOrAncestorOfType<ClassDeclaration>();
if (methodDeclaration?.name2.lexeme != 'createState' ||
classDeclaration?.declaredElement != widgetClassElement) {
classDeclaration?.declaredElement2 != widgetClassElement) {
used = true;
}
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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) {
@@ -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;
}
@@ -31,7 +31,7 @@ class RemoveUnusedLocalVariable extends CorrectionProducer {
return;
}
var element = declaration.declaredElement;
var element = declaration.declaredElement2;
if (element is! LocalVariableElement) {
return;
}
@@ -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(
@@ -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) {
@@ -84,12 +84,12 @@ class ReplaceReturnType extends CorrectionProducer {
if (newType != null) {
var clazz = method.thisOrAncestorOfType<ClassDeclaration>();
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) {
@@ -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;
@@ -241,7 +241,7 @@ class _SurroundWithSetState extends _SurroundWith {
var classDeclaration =
node.parent?.thisOrAncestorOfType<ClassDeclaration>();
if (classDeclaration != null &&
flutter.isState(classDeclaration.declaredElement)) {
flutter.isState(classDeclaration.declaredElement2)) {
await builder.addDartFileEdit(file, (builder) {
builder.addReplacement(statementsRange, (builder) {
builder.write(indentOld);
@@ -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) {
@@ -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;
@@ -202,7 +202,7 @@ class KytheDartVisitor extends GeneralizingAstVisitor<void> 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<void> 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<void> 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<void> 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<void> 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<void> 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<void> 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<void> 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<void> 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<void> 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<void> 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
@@ -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<RefactoringStatus>.value(result);
@@ -184,7 +184,7 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl
// Find the enclosing class.
_enclosingClassNode = node?.thisOrAncestorOfType<ClassDeclaration>();
_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<Expression> arguments = invocation.argumentList.arguments;
@@ -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<RefactoringStatus> 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<InterfaceElement> 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<RefactoringStatus> 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;
@@ -37,7 +37,7 @@ class VisibleRangesComputer extends GeneralizingAstVisitor<void> {
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> {
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<void> {
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);
}
}
@@ -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) {
@@ -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;
@@ -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);
}
@@ -29,7 +29,7 @@ class BulkFixDetails {
.getResolvedUnit(file.absolute.path) as ResolvedUnitResult;
for (var classDecl
in resolvedFile.unit.declarations.whereType<ClassDeclaration>()) {
var classElement = classDecl.declaredElement;
var classElement = classDecl.declaredElement2;
if (classElement != null &&
classElement.allSupertypes.any(
(element) => element.element2.name == 'CorrectionProducer')) {
@@ -968,7 +968,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor<void> {
// 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<void> {
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++;
+3
View File
@@ -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.
+62 -10
View File
@@ -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<EnumConstantDeclaration> 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;
@@ -446,7 +446,7 @@ class _IndexContributor extends GeneralizingAstVisitor {
_IndexContributor(this.assembler);
void recordIsAncestorOf(ClassElement descendant) {
void recordIsAncestorOf(InterfaceElement descendant) {
_recordIsAncestorOf(descendant, descendant, false, <ClassElement>[]);
}
@@ -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);
}
+75 -20
View File
@@ -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<EnumConstantDeclaration> 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.
@@ -38,7 +38,7 @@ class _ElementMapper extends GeneralizingAstVisitor<Element> {
@override
Element? visitClassDeclaration(ClassDeclaration node) {
return node.declaredElement;
return node.declaredElement2;
}
@override
@@ -48,7 +48,7 @@ class _ElementMapper extends GeneralizingAstVisitor<Element> {
@override
Element? visitConstructorDeclaration(ConstructorDeclaration node) {
return node.declaredElement;
return node.declaredElement2;
}
@override
@@ -75,17 +75,17 @@ class _ElementMapper extends GeneralizingAstVisitor<Element> {
@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<Element> {
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<Element> {
@override
Element? visitMethodDeclaration(MethodDeclaration node) {
return node.declaredElement;
return node.declaredElement2;
}
@override
@@ -194,11 +194,11 @@ class _ElementMapper extends GeneralizingAstVisitor<Element> {
@override
Element? visitTypeParameter(TypeParameter node) {
return node.declaredElement;
return node.declaredElement2;
}
@override
Element? visitVariableDeclaration(VariableDeclaration node) {
return node.declaredElement;
return node.declaredElement2;
}
}
@@ -132,7 +132,7 @@ class ConstantVerifier extends RecursiveAstVisitor<void> {
_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<void> {
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
@@ -106,7 +106,7 @@ class ConstantFinder extends RecursiveAstVisitor<void> {
@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> {
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> {
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> {
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 &&
@@ -11,7 +11,7 @@ import 'package:analyzer/src/dart/element/type_system.dart';
class ClassHierarchy {
final Map<InterfaceElement, _Hierarchy> _map = {};
List<ClassHierarchyError> errors(ClassElement element) {
List<ClassHierarchyError> errors(InterfaceElement element) {
return _getHierarchy(element).errors;
}
@@ -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<ExecutableElement>? getOverridden2(ClassElement element, Name name) {
List<ExecutableElement>? getOverridden2(InterfaceElement element, Name name) {
var interface = getInterface(element);
return interface._overridden[name];
}
+8 -8
View File
@@ -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<ExtensionElement> extensions = [];
+1 -1
View File
@@ -277,7 +277,7 @@ class ReferencesCollector extends GeneralizingAstVisitor<void> {
@override
visitConstructorDeclaration(ConstructorDeclaration node) {
var e = node.declaredElement;
var e = node.declaredElement2;
if (e == element) {
if (e!.name.isEmpty) {
references.add(
@@ -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<void> {
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<void> {
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');
@@ -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);
@@ -162,7 +162,7 @@ class FunctionExpressionResolver {
}
return type.instantiate(typeParameters.map((typeParameter) {
return typeParameter.declaredElement!.instantiate(
return typeParameter.declaredElement2!.instantiate(
nullabilitySuffix: _resolver.noneOrStarSuffix,
);
}).toList());
@@ -50,7 +50,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor<void> {
@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<void> {
@override
void visitDeclaredIdentifier(DeclaredIdentifier node) {
_assertLegacyType(node.declaredElement?.type);
_assertLegacyType(node.declaredElement2?.type);
super.visitDeclaredIdentifier(node);
}
@@ -85,7 +85,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor<void> {
@override
void visitFunctionDeclaration(FunctionDeclaration node) {
_assertLegacyType(node.declaredElement?.type);
_assertLegacyType(node.declaredElement2?.type);
super.visitFunctionDeclaration(node);
}
@@ -110,7 +110,7 @@ class LegacyTypeAsserter extends GeneralizingAstVisitor<void> {
@override
void visitVariableDeclaration(VariableDeclaration node) {
_assertLegacyType(node.declaredElement?.type);
_assertLegacyType(node.declaredElement2?.type);
super.visitVariableDeclaration(node);
}
@@ -240,7 +240,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
@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<void> {
@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<void> {
@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<void> {
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> {
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<void> {
@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<void> {
@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<void> {
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<void> {
@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<void> {
@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<void> {
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<void> {
@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<void> {
@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<void> {
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<void> {
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<void> {
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<void> {
nameToken.offset,
);
}
variable.declaredElement = element;
variable.declaredElement2 = element;
_elementHolder.enclose(element);
_define(element);
@@ -1249,7 +1249,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
_setCodeRange(element, typeParameter);
}
typeParameter.declaredElement = element;
typeParameter.declaredElement2 = element;
// ignore: deprecated_member_use_from_same_package
typeParameter.name.staticElement = element;
_define(element);
@@ -27,10 +27,10 @@ class BlockScope {
NodeList<VariableDeclaration> 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!;
}
}
}
@@ -39,7 +39,7 @@ class VariableDeclarationResolver {
return;
}
var element = node.declaredElement!;
var element = node.declaredElement2!;
var isTopLevel =
element is FieldElement || element is TopLevelVariableElement;
@@ -155,10 +155,11 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
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<void> {
}
} 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<void> {
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<void> {
}
} 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<void> {
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<void> {
@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<void> {
@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<void> {
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<void> {
@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<void> {
@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<void> {
@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<void> {
return nonFinalFields;
}
var element = node.declaredElement as ClassElement;
var element = node.declaredElement2 as ClassElement;
if (isOrInheritsImmutable(element, HashSet<ClassElement>())) {
Iterable<String> nonFinalFields =
definedOrInheritedNonFinalInstanceFields(
@@ -1170,7 +1171,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
// 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<void> {
_errorReporter.reportErrorForNode(
HintCode.RETURN_OF_DO_NOT_STORE,
entry.key,
[entry.value.name!, parent.declaredElement!.displayName],
[entry.value.name!, parent.declaredElement2!.displayName],
);
}
}
@@ -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;
}
}
@@ -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 = <String>{};
@@ -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<String, Element> definedNames = HashMap<String, Element>();
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<String, Element> definedNames = HashMap<String, Element>();
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<ClassMember> members) {
void _checkClassMembers(InterfaceElement element, List<ClassMember> members) {
var constructorNames = HashSet<String>();
var instanceGetters = HashMap<String, Element>();
var instanceSetters = HashMap<String, Element>();
@@ -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<String, Element> staticGetters,
required Map<String, Element> 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);
@@ -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';
}
@@ -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<ClassMember> 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<ExecutableElement>? 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 ==
@@ -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`.
@@ -23,7 +23,7 @@ class OverrideVerifier extends RecursiveAstVisitor<void> {
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<void> {
@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<void> {
@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<void> {
@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<void> {
@override
void visitMixinDeclaration(MixinDeclaration node) {
_currentClass = node.declaredElement;
_currentClass = node.declaredElement2;
super.visitMixinDeclaration(node);
_currentClass = null;
}
@@ -72,7 +72,7 @@ class GatherUsedLocalElementsVisitor extends RecursiveAstVisitor<void> {
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<void> {
@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> {
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> {
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<void> {
@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<void> {
@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<void> {
@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<void> {
@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<void> {
@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<void> {
@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<void> {
@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<void> {
@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<void> {
@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> {
}
}
void _visitClassElement(ClassElement element) {
void _visitClassElement(InterfaceElement element) {
if (!_isUsedElement(element)) {
_reportErrorForElement(
HintCode.UNUSED_ELEMENT, element, [element.displayName]);
@@ -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) {
@@ -202,7 +202,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
/// 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<void>
);
}
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<void>
/// 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>
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<void>
_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<void>
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<void>
@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>
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<void>
_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<void>
@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<void>
@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<void>
@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<void>
}
_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>
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>
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<void>
@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<void>
_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<void>
// TODO(scheglov) Verify for all mixin errors.
var outerClass = _enclosingClass;
try {
_enclosingClass = node.declaredElement as ClassElementImpl;
_enclosingClass = node.declaredElement2!;
List<ClassMember> members = node.members;
_duplicateDefinitionVerifier.checkMixin(node);
@@ -1013,7 +1013,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
_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<void>
_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<void>
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<void>
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>
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<void>
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>
}
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<void>
// [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<void>
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<void>
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<void>
}
var redirectedElement = redirectedConstructor.staticElement;
_checkForRedirectToNonConstConstructor(
declaration.declaredElement!,
declaration.declaredElement2!,
redirectedElement,
redirectedConstructor,
);
@@ -4322,7 +4322,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
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<void>
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<void>
// 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<void>
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<void>
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);
}
}
}
@@ -86,7 +86,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
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<void> {
}
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<void> {
_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<void> {
_checkFfiNative(
errorNode: node,
annotations: node.metadata,
declarationElement: node.declaredElement as ExecutableElement,
declarationElement: node.declaredElement2!,
formalParameterList: node.parameters);
super.visitMethodDeclaration(node);
}
+36 -36
View File
@@ -741,22 +741,22 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
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<void>
//
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<void>
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<void>
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<void>
//
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>
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<void>
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<void>
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<void>
//
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>
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>
}
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> {
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<void> {
_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<void> {
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<void> {
(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<void> {
@override
void visitDeclaredIdentifier(DeclaredIdentifier node) {
_define(node.declaredElement!);
_define(node.declaredElement2!);
super.visitDeclaredIdentifier(node);
}
@@ -3150,7 +3150,7 @@ class ScopeResolverVisitor extends UnifyingAstVisitor<void> {
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<void> {
_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> {
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<void> {
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<void> {
} else if (parent is MethodDeclaration) {
nameScope = FormalParameterScope(
nameScope,
parent.declaredElement!.parameters,
parent.declaredElement2!.parameters,
);
}
}
@@ -3309,10 +3309,10 @@ class ScopeResolverVisitor extends UnifyingAstVisitor<void> {
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<void> {
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<void> {
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<void> {
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> {
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<void> {
super.visitVariableDeclaration(node);
if (node.parent!.parent is ForParts) {
_define(node.declaredElement!);
_define(node.declaredElement2!);
}
}
+1 -1
View File
@@ -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) {
@@ -858,7 +858,7 @@ class AstBinaryWriter extends ThrowingAstVisitor<void> {
f();
} else {
var elements = node.typeParameters
.map((typeParameter) => typeParameter.declaredElement!)
.map((typeParameter) => typeParameter.declaredElement2!)
.toList();
_sink.localElements.withElements(elements, () {
f();
@@ -25,32 +25,32 @@ class DefaultTypesBuilder {
void build(List<AstNode> 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 = <DartType>[];
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];
}
}
@@ -98,7 +98,7 @@ class ElementBuilder extends ThrowingAstVisitor<void> {
_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<void> {
_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<void> {
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<void> {
_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<void> {
_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<void> {
_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<void> {
_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<void> {
_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<void> {
_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<void> {
_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<void> {
_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<void> {
_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<void> {
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> {
}
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> {
}
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;
});
@@ -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();
}
}
@@ -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();
}
}
@@ -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),
);
}
@@ -319,7 +319,7 @@ class NamedTypeBuilder extends TypeBuilder {
static List<TypeParameterElement> _typeParameters(TypeParameterList? node) {
if (node != null) {
return node.typeParameters
.map<TypeParameterElement>((p) => p.declaredElement!)
.map<TypeParameterElement>((p) => p.declaredElement2!)
.toList();
} else {
return const <TypeParameterElement>[];
@@ -52,7 +52,7 @@ class ReferenceResolver extends ThrowingAstVisitor<void> {
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<void> {
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> {
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> {
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> {
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<void> {
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> {
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> {
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> {
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> {
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> {
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> {
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<void> {
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<void> {
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;
}
}
@@ -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}');
@@ -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;
}
}
@@ -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<TypeParameterElement>((p) => p.declaredElement!)
.map<TypeParameterElement>((p) => p.declaredElement2!)
.toList();
}
@@ -518,7 +518,8 @@ class _MixinsInference {
void perform(List<AstNode> 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<AstNode> 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);
}
}
@@ -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;
}
}

Some files were not shown because too many files have changed in this diff Show More