Version 2.14.0-144.0.dev
Merge commit 'cc02fd844b59f0f8d5179d3cc22055678fe9df71' into 'dev'
diff --git a/pkg/analyzer/lib/src/summary2/linked_unit_context.dart b/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
index fc490d7..472f5cb 100644
--- a/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
+++ b/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
@@ -2,14 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/dart/element/type_provider.dart';
import 'package:analyzer/src/dart/ast/ast.dart';
import 'package:analyzer/src/dart/element/element.dart';
-import 'package:analyzer/src/dart/element/type.dart';
-import 'package:analyzer/src/summary2/linked_element_factory.dart';
import 'package:analyzer/src/summary2/linked_library_context.dart';
import 'package:analyzer/src/summary2/reference.dart';
@@ -30,547 +24,4 @@
CompilationUnitElementImpl get element {
return reference.element as CompilationUnitElementImpl;
}
-
- LinkedElementFactory get elementFactory => libraryContext.elementFactory;
-
- bool get hasPartOfDirective {
- for (var directive in unit.directives) {
- if (directive is PartOfDirective) {
- return true;
- }
- }
- return false;
- }
-
- /// Return `true` if this unit is a part of a bundle that is being linked.
- bool get isLinking => true;
-
- TypeProvider get typeProvider {
- var libraryReference = libraryContext.reference;
- var libraryElement = libraryReference.element as LibraryElementImpl;
- return libraryElement.typeProvider;
- }
-
- List<ConstructorInitializer> getConstructorInitializers(
- ConstructorDeclaration node,
- ) {
- return node.initializers;
- }
-
- ConstructorName? getConstructorRedirected(ConstructorDeclaration node) {
- return node.redirectedConstructor;
- }
-
- List<ConstructorDeclarationImpl> getConstructors(AstNode node) {
- if (node is ClassOrMixinDeclaration) {
- return _getClassOrExtensionOrMixinMembers(node)
- .whereType<ConstructorDeclarationImpl>()
- .toList();
- }
- return const <ConstructorDeclarationImpl>[];
- }
-
- int getDirectiveOffset(Directive node) {
- return node.keyword.offset;
- }
-
- String getFieldFormalParameterName(AstNode node) {
- if (node is DefaultFormalParameter) {
- return getFieldFormalParameterName(node.parameter);
- } else if (node is FieldFormalParameter) {
- return node.identifier.name;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- List<VariableDeclaration> getFields(CompilationUnitMember node) {
- var fields = <VariableDeclaration>[];
- var members = _getClassOrExtensionOrMixinMembers(node);
- for (var member in members) {
- if (member is FieldDeclaration) {
- fields.addAll(member.fields.variables);
- }
- }
- return fields;
- }
-
- String getFormalParameterName(FormalParameter node) {
- if (node is DefaultFormalParameter) {
- return getFormalParameterName(node.parameter);
- } else if (node is NormalFormalParameter) {
- return node.identifier?.name ?? '';
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- List<FormalParameter>? getFormalParameters(AstNode node) {
- if (node is ConstructorDeclaration) {
- return node.parameters.parameters;
- } else if (node is FunctionDeclaration) {
- return getFormalParameters(node.functionExpression);
- } else if (node is FunctionExpression) {
- return node.parameters?.parameters;
- } else if (node is FormalParameter) {
- if (node is DefaultFormalParameter) {
- return getFormalParameters(node.parameter);
- } else if (node is FieldFormalParameter) {
- return node.parameters?.parameters;
- } else if (node is FunctionTypedFormalParameter) {
- return node.parameters.parameters;
- } else {
- return null;
- }
- } else if (node is FunctionTypeAlias) {
- return node.parameters.parameters;
- } else if (node is GenericFunctionType) {
- return node.parameters.parameters;
- } else if (node is MethodDeclaration) {
- return node.parameters?.parameters;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- ImplementsClause? getImplementsClause(AstNode node) {
- if (node is ClassDeclaration) {
- return node.implementsClause;
- } else if (node is ClassTypeAlias) {
- return node.implementsClause;
- } else if (node is MixinDeclaration) {
- return node.implementsClause;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- Expression? getInitializer(AstNode node) {
- if (node is DefaultFormalParameter) {
- return node.defaultValue;
- } else if (node is VariableDeclaration) {
- return node.initializer;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- LibraryLanguageVersion getLanguageVersion(CompilationUnit node) {
- return (node as CompilationUnitImpl).languageVersion!;
- }
-
- List<Annotation> getLibraryMetadata() {
- for (var directive in unit.directives) {
- if (directive is LibraryDirective) {
- return directive.metadata;
- }
- }
- return const <Annotation>[];
- }
-
- List<Annotation> getMetadata(AstNode node) {
- if (node is ClassDeclaration) {
- return node.metadata;
- } else if (node is ClassTypeAlias) {
- return node.metadata;
- } else if (node is CompilationUnit) {
- assert(node == unit);
- if (indexInLibrary != 0) {
- return _getPartDirectiveAnnotation();
- } else {
- return const <Annotation>[];
- }
- } else if (node is ConstructorDeclaration) {
- return node.metadata;
- } else if (node is DefaultFormalParameter) {
- return getMetadata(node.parameter);
- } else if (node is Directive) {
- return node.metadata;
- } else if (node is EnumConstantDeclaration) {
- return node.metadata;
- } else if (node is EnumDeclaration) {
- return node.metadata;
- } else if (node is ExtensionDeclaration) {
- return node.metadata;
- } else if (node is FormalParameter) {
- return node.metadata;
- } else if (node is FunctionDeclaration) {
- return node.metadata;
- } else if (node is FunctionTypeAlias) {
- return node.metadata;
- } else if (node is GenericTypeAlias) {
- return node.metadata;
- } else if (node is MethodDeclaration) {
- return node.metadata;
- } else if (node is MixinDeclaration) {
- return node.metadata;
- } else if (node is TypeParameter) {
- return node.metadata;
- } else if (node is VariableDeclaration) {
- var parent2 = node.parent!.parent!;
- if (parent2 is FieldDeclaration) {
- return parent2.metadata;
- } else if (parent2 is TopLevelVariableDeclaration) {
- return parent2.metadata;
- }
- }
- return const <Annotation>[];
- }
-
- List<MethodDeclarationImpl> getMethods(CompilationUnitMember node) {
- return _getClassOrExtensionOrMixinMembers(node)
- .whereType<MethodDeclarationImpl>()
- .toList();
- }
-
- int getNameOffset(AstNode node) {
- if (node is ConstructorDeclaration) {
- if (node.name != null) {
- return node.name!.offset;
- } else {
- return node.returnType.offset;
- }
- } else if (node is EnumConstantDeclaration) {
- return node.name.offset;
- } else if (node is ExtensionDeclaration) {
- return node.name?.offset ?? -1;
- } else if (node is FormalParameter) {
- return node.identifier?.offset ?? -1;
- } else if (node is MethodDeclaration) {
- return node.name.offset;
- } else if (node is NamedCompilationUnitMember) {
- return node.name.offset;
- } else if (node is TypeParameter) {
- return node.name.offset;
- } else if (node is VariableDeclaration) {
- return node.name.offset;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- /// Return the actual return type for the [node] - explicit or inferred.
- DartType getReturnType(AstNode node) {
- if (node is GenericFunctionType) {
- return node.returnType?.type ?? DynamicTypeImpl.instance;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- TypeName? getSuperclass(AstNode node) {
- if (node is ClassDeclaration) {
- return node.extendsClause?.superclass;
- } else if (node is ClassTypeAlias) {
- return node.superclass;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- TypeParameterListImpl? getTypeParameters2(AstNode node) {
- if (node is ClassDeclarationImpl) {
- return node.typeParameters;
- } else if (node is ClassTypeAliasImpl) {
- return node.typeParameters;
- } else if (node is ConstructorDeclarationImpl) {
- return null;
- } else if (node is DefaultFormalParameterImpl) {
- return getTypeParameters2(node.parameter);
- } else if (node is ExtensionDeclarationImpl) {
- return node.typeParameters;
- } else if (node is FieldFormalParameterImpl) {
- return node.typeParameters;
- } else if (node is FunctionDeclarationImpl) {
- return getTypeParameters2(node.functionExpression);
- } else if (node is FunctionExpressionImpl) {
- return node.typeParameters;
- } else if (node is FunctionTypedFormalParameterImpl) {
- return node.typeParameters;
- } else if (node is FunctionTypeAliasImpl) {
- return node.typeParameters;
- } else if (node is GenericFunctionTypeImpl) {
- return node.typeParameters;
- } else if (node is GenericTypeAliasImpl) {
- return node.typeParameters;
- } else if (node is MethodDeclarationImpl) {
- return node.typeParameters;
- } else if (node is MixinDeclarationImpl) {
- return node.typeParameters;
- } else if (node is SimpleFormalParameterImpl) {
- return null;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- WithClause? getWithClause(AstNode node) {
- if (node is ClassDeclaration) {
- return node.withClause;
- } else if (node is ClassTypeAlias) {
- return node.withClause;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- bool hasImplicitReturnType(AstNode node) {
- if (node is FunctionDeclaration) {
- return node.returnType == null;
- }
- if (node is MethodDeclaration) {
- return node.returnType == null;
- }
- return false;
- }
-
- bool hasImplicitType(AstNode node) {
- if (node is DefaultFormalParameter) {
- return hasImplicitType(node.parameter);
- } else if (node is SimpleFormalParameter) {
- return node.type == null;
- } else if (node is VariableDeclaration) {
- var parent = node.parent as VariableDeclarationList;
- return parent.type == null;
- }
- return false;
- }
-
- bool hasInitializer(VariableDeclarationImpl node) {
- return node.initializer != null || node.hasInitializer;
- }
-
- bool isAbstract(AstNode node) {
- if (node is ClassDeclaration) {
- return node.isAbstract;
- } else if (node is ClassTypeAlias) {
- return node.isAbstract;
- } else if (node is ConstructorDeclaration) {
- return false;
- } else if (node is FunctionDeclaration) {
- return false;
- } else if (node is MethodDeclaration) {
- return node.isAbstract;
- } else if (node is VariableDeclaration) {
- var parent = node.parent;
- if (parent is VariableDeclarationList) {
- var grandParent = parent.parent;
- if (grandParent is FieldDeclaration) {
- return grandParent.abstractKeyword != null;
- } else {
- throw UnimplementedError('${grandParent.runtimeType}');
- }
- } else {
- throw UnimplementedError('${parent.runtimeType}');
- }
- } else if (node is EnumConstantDeclaration) {
- return false;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- bool isAsynchronous(AstNode node) {
- if (node is ConstructorDeclaration) {
- return false;
- } else if (node is FunctionDeclaration) {
- return isAsynchronous(node.functionExpression);
- } else if (node is FunctionExpression) {
- return node.body.isAsynchronous;
- } else if (node is MethodDeclaration) {
- return node.body.isAsynchronous;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- bool isConst(AstNode node) {
- if (node is FormalParameter) {
- return node.isConst;
- }
- if (node is VariableDeclaration) {
- var parent = node.parent as VariableDeclarationList;
- return parent.isConst;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- bool isExplicitlyCovariant(AstNode node) {
- if (node is DefaultFormalParameter) {
- return isExplicitlyCovariant(node.parameter);
- } else if (node is EnumConstantDeclaration) {
- return false;
- } else if (node is FormalParameter) {
- return node.covariantKeyword != null;
- } else if (node is VariableDeclaration) {
- var parent2 = node.parent!.parent!;
- return parent2 is FieldDeclaration && parent2.covariantKeyword != null;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- bool isExternal(AstNode node) {
- if (node is ConstructorDeclaration) {
- return node.externalKeyword != null;
- } else if (node is FunctionDeclaration) {
- return node.externalKeyword != null;
- } else if (node is MethodDeclaration) {
- return node.externalKeyword != null || node.body is NativeFunctionBody;
- } else if (node is VariableDeclaration) {
- var parent = node.parent;
- if (parent is VariableDeclarationList) {
- var grandParent = parent.parent;
- if (grandParent is FieldDeclaration) {
- return grandParent.externalKeyword != null;
- } else if (grandParent is TopLevelVariableDeclaration) {
- return grandParent.externalKeyword != null;
- } else {
- throw UnimplementedError('${grandParent.runtimeType}');
- }
- } else {
- throw UnimplementedError('${parent.runtimeType}');
- }
- } else if (node is EnumConstantDeclaration) {
- return false;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- bool isFinal(AstNode node) {
- if (node is EnumConstantDeclaration) {
- return false;
- }
- if (node is VariableDeclaration) {
- var parent = node.parent as VariableDeclarationList;
- return parent.isFinal;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- bool isGenerator(AstNode node) {
- if (node is ConstructorDeclaration) {
- return false;
- } else if (node is FunctionDeclaration) {
- return isGenerator(node.functionExpression);
- } else if (node is FunctionExpression) {
- return node.body.isGenerator;
- } else if (node is MethodDeclaration) {
- return node.body.isGenerator;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- bool isGetter(AstNode node) {
- if (node is FunctionDeclaration) {
- return node.isGetter;
- } else if (node is MethodDeclaration) {
- return node.isGetter;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- bool isLate(AstNode node) {
- if (node is VariableDeclaration) {
- return node.isLate;
- }
- if (node is EnumConstantDeclaration) {
- return false;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- bool isNative(AstNode node) {
- if (node is MethodDeclaration) {
- return node.body is NativeFunctionBody;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
- }
-
- bool isSetter(AstNode node) {
- if (node is FunctionDeclaration) {
- return node.isSetter;
- } else if (node is MethodDeclaration) {
- return node.isSetter;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- bool isStatic(AstNode node) {
- if (node is FunctionDeclaration) {
- return true;
- } else if (node is MethodDeclaration) {
- return node.modifierKeyword != null;
- } else if (node is VariableDeclaration) {
- var parent2 = node.parent!.parent!;
- return parent2 is FieldDeclaration && parent2.isStatic;
- }
- throw UnimplementedError('${node.runtimeType}');
- }
-
- bool shouldBeConstFieldElement(AstNode node) {
- if (node is VariableDeclaration) {
- var variableList = node.parent as VariableDeclarationList;
- if (variableList.isConst) return true;
-
- var fieldDeclaration = variableList.parent as FieldDeclaration;
- if (fieldDeclaration.staticKeyword != null) return false;
-
- if (variableList.isFinal) {
- var class_ = fieldDeclaration.parent;
- if (class_ is ClassDeclaration) {
- for (var member in class_.members) {
- if (member is ConstructorDeclaration &&
- member.constKeyword != null) {
- return true;
- }
- }
- }
- }
- }
- return false;
- }
-
- List<VariableDeclaration> topLevelVariables(CompilationUnit unit) {
- var variables = <VariableDeclaration>[];
- for (var declaration in unit.declarations) {
- if (declaration is TopLevelVariableDeclaration) {
- variables.addAll(declaration.variables.variables);
- }
- }
- return variables;
- }
-
- List<ClassMember> _getClassOrExtensionOrMixinMembers(
- CompilationUnitMember node,
- ) {
- if (node is ClassDeclaration) {
- return node.members;
- } else if (node is ClassTypeAlias) {
- return <ClassMember>[];
- } else if (node is ExtensionDeclaration) {
- return node.members;
- } else if (node is MixinDeclaration) {
- return node.members;
- } else {
- throw StateError('${node.runtimeType}');
- }
- }
-
- NodeList<Annotation> _getPartDirectiveAnnotation() {
- var definingContext = libraryContext.definingUnit;
- var definingUnit = definingContext.unit;
- var partDirectiveIndex = 0;
- for (var directive in definingUnit.directives) {
- if (directive is PartDirective) {
- partDirectiveIndex++;
- if (partDirectiveIndex == indexInLibrary) {
- return directive.metadata;
- }
- }
- }
- throw StateError('Expected to find $indexInLibrary part directive.');
- }
}
diff --git a/tools/VERSION b/tools/VERSION
index f2c3675..32421ed 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 143
+PRERELEASE 144
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/utils/dartanalyzer/BUILD.gn b/utils/dartanalyzer/BUILD.gn
index 0c007ab..d079d06 100644
--- a/utils/dartanalyzer/BUILD.gn
+++ b/utils/dartanalyzer/BUILD.gn
@@ -32,7 +32,7 @@
output = "$target_gen_dir/sdk_lib_files.stamp"
}
-dart_action("generate_summary_strong") {
+prebuilt_dart_action("generate_summary_strong") {
deps = [
":sdk_lib_files",
"../../sdk:copy_libraries",