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:
committed by
Commit Bot
parent
f9ba5c03df
commit
f4c009dc33
@@ -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);
|
||||
}
|
||||
|
||||
+1
-2
@@ -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);
|
||||
|
||||
+28
-26
@@ -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);
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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)) {
|
||||
|
||||
+3
-3
@@ -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!);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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(
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+3
-3
@@ -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++;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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,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 = [];
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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!);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user