Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(863)

Unified Diff: pkg/analyzer/lib/src/summary/summarize_elements.dart

Issue 1577663002: Remove BuilderContext from summary builders. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/summary/summarize_elements.dart
diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
index c47d2a0f9c3a72ed90ba1c3d000f0192e29df29c..7148ddb59a2d99ba83fce34abb3db0ad004561f4 100644
--- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
@@ -9,7 +9,6 @@ import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:analyzer/src/summary/base.dart';
import 'package:analyzer/src/summary/format.dart';
/**
@@ -17,8 +16,8 @@ import 'package:analyzer/src/summary/format.dart';
* for building the summary, and using [typeProvider] to find built-in types.
*/
LibrarySerializationResult serializeLibrary(
- BuilderContext ctx, LibraryElement lib, TypeProvider typeProvider) {
- var serializer = new _LibrarySerializer(ctx, lib, typeProvider);
+ LibraryElement lib, TypeProvider typeProvider) {
+ var serializer = new _LibrarySerializer(lib, typeProvider);
PrelinkedLibraryBuilder prelinked = serializer.serializeLibrary();
return new LibrarySerializationResult(
prelinked, serializer.unlinkedUnits, serializer.unitUris);
@@ -134,18 +133,13 @@ class _LibrarySerializer {
new Set<LibraryElement>();
/**
- * [BuilderContext] used to serialize the output summary.
- */
- final BuilderContext ctx;
-
- /**
* Map from imported element to the prefix which may be used to refer to that
* element; elements for which no prefix is needed are absent from this map.
*/
final Map<Element, PrefixElement> prefixMap = <Element, PrefixElement>{};
- _LibrarySerializer(this.ctx, this.libraryElement, this.typeProvider) {
- dependencies.add(encodePrelinkedDependency(ctx));
+ _LibrarySerializer(this.libraryElement, this.typeProvider) {
+ dependencies.add(encodePrelinkedDependency());
dependencyMap[libraryElement] = 0;
}
@@ -161,18 +155,16 @@ class _LibrarySerializer {
* library.
*/
void addCompilationUnitElements(CompilationUnitElement element, int unitNum) {
- UnlinkedUnitBuilder b = new UnlinkedUnitBuilder(ctx);
+ UnlinkedUnitBuilder b = new UnlinkedUnitBuilder();
referenceMap.clear();
- unlinkedReferences = <UnlinkedReferenceBuilder>[
- encodeUnlinkedReference(ctx)
- ];
+ unlinkedReferences = <UnlinkedReferenceBuilder>[encodeUnlinkedReference()];
prelinkedReferences = <PrelinkedReferenceBuilder>[
- encodePrelinkedReference(ctx, kind: PrelinkedReferenceKind.classOrEnum)
+ encodePrelinkedReference(kind: PrelinkedReferenceKind.classOrEnum)
];
List<UnlinkedPublicNameBuilder> names = <UnlinkedPublicNameBuilder>[];
for (PropertyAccessorElement accessor in element.accessors) {
if (accessor.isPublic) {
- names.add(encodeUnlinkedPublicName(ctx,
+ names.add(encodeUnlinkedPublicName(
kind: PrelinkedReferenceKind.other,
name: accessor.name,
numTypeParameters: accessor.typeParameters.length));
@@ -180,7 +172,7 @@ class _LibrarySerializer {
}
for (ClassElement cls in element.types) {
if (cls.isPublic) {
- names.add(encodeUnlinkedPublicName(ctx,
+ names.add(encodeUnlinkedPublicName(
kind: PrelinkedReferenceKind.classOrEnum,
name: cls.name,
numTypeParameters: cls.typeParameters.length));
@@ -188,13 +180,13 @@ class _LibrarySerializer {
}
for (ClassElement enm in element.enums) {
if (enm.isPublic) {
- names.add(encodeUnlinkedPublicName(ctx,
+ names.add(encodeUnlinkedPublicName(
kind: PrelinkedReferenceKind.classOrEnum, name: enm.name));
}
}
for (FunctionElement function in element.functions) {
if (function.isPublic) {
- names.add(encodeUnlinkedPublicName(ctx,
+ names.add(encodeUnlinkedPublicName(
kind: PrelinkedReferenceKind.other,
name: function.name,
numTypeParameters: function.typeParameters.length));
@@ -202,7 +194,7 @@ class _LibrarySerializer {
}
for (FunctionTypeAliasElement typedef in element.functionTypeAliases) {
if (typedef.isPublic) {
- names.add(encodeUnlinkedPublicName(ctx,
+ names.add(encodeUnlinkedPublicName(
kind: PrelinkedReferenceKind.typedef,
name: typedef.name,
numTypeParameters: typedef.typeParameters.length));
@@ -215,7 +207,7 @@ class _LibrarySerializer {
b.libraryNameLength = libraryElement.nameLength;
b.libraryDocumentationComment = serializeDocumentation(libraryElement);
}
- b.publicNamespace = encodeUnlinkedPublicNamespace(ctx,
+ b.publicNamespace = encodeUnlinkedPublicNamespace(
exports: libraryElement.exports.map(serializeExportPublic).toList(),
parts: libraryElement.parts
.map((CompilationUnitElement e) => e.uri)
@@ -225,7 +217,7 @@ class _LibrarySerializer {
b.imports = libraryElement.imports.map(serializeImport).toList();
b.parts = libraryElement.parts
.map((CompilationUnitElement e) =>
- encodeUnlinkedPart(ctx, uriOffset: e.uriOffset, uriEnd: e.uriEnd))
+ encodeUnlinkedPart(uriOffset: e.uriOffset, uriEnd: e.uriEnd))
.toList();
} else {
// TODO(paulberry): we need to figure out a way to record library, part,
@@ -234,7 +226,7 @@ class _LibrarySerializer {
// language), so that if the user makes code changes that cause a
// non-defining compilation unit to become a defining compilation unit,
// we can create a correct summary by simply re-linking.
- b.publicNamespace = encodeUnlinkedPublicNamespace(ctx, names: names);
+ b.publicNamespace = encodeUnlinkedPublicNamespace(names: names);
}
b.classes = element.types.map(serializeClass).toList();
b.enums = element.enums.map(serializeEnum).toList();
@@ -260,8 +252,7 @@ class _LibrarySerializer {
b.variables = variables;
b.references = unlinkedReferences;
unlinkedUnits.add(b);
- prelinkedUnits
- .add(encodePrelinkedUnit(ctx, references: prelinkedReferences));
+ prelinkedUnits.add(encodePrelinkedUnit(references: prelinkedReferences));
unitUris.add(element.source.uri.toString());
unlinkedReferences = null;
prelinkedReferences = null;
@@ -348,7 +339,7 @@ class _LibrarySerializer {
* Serialize the given [classElement], creating an [UnlinkedClass].
*/
UnlinkedClassBuilder serializeClass(ClassElement classElement) {
- UnlinkedClassBuilder b = new UnlinkedClassBuilder(ctx);
+ UnlinkedClassBuilder b = new UnlinkedClassBuilder();
b.name = classElement.name;
b.nameOffset = classElement.nameOffset;
b.typeParameters =
@@ -397,7 +388,7 @@ class _LibrarySerializer {
*/
UnlinkedCombinatorBuilder serializeCombinator(
NamespaceCombinator combinator) {
- UnlinkedCombinatorBuilder b = new UnlinkedCombinatorBuilder(ctx);
+ UnlinkedCombinatorBuilder b = new UnlinkedCombinatorBuilder();
if (combinator is ShowElementCombinator) {
b.shows = combinator.shownNames;
} else if (combinator is HideElementCombinator) {
@@ -414,7 +405,7 @@ class _LibrarySerializer {
int serializeDependency(LibraryElement dependentLibrary) {
return dependencyMap.putIfAbsent(dependentLibrary, () {
int index = dependencies.length;
- dependencies.add(encodePrelinkedDependency(ctx,
+ dependencies.add(encodePrelinkedDependency(
uri: dependentLibrary.source.uri.toString()));
return index;
});
@@ -430,7 +421,7 @@ class _LibrarySerializer {
if (element.documentationComment == null) {
return null;
}
- return encodeUnlinkedDocumentationComment(ctx,
+ return encodeUnlinkedDocumentationComment(
text: element.documentationComment,
offset: element.docRange.offset,
length: element.docRange.length);
@@ -447,13 +438,13 @@ class _LibrarySerializer {
* Serialize the given [enumElement], creating an [UnlinkedEnum].
*/
UnlinkedEnumBuilder serializeEnum(ClassElement enumElement) {
- UnlinkedEnumBuilder b = new UnlinkedEnumBuilder(ctx);
+ UnlinkedEnumBuilder b = new UnlinkedEnumBuilder();
b.name = enumElement.name;
b.nameOffset = enumElement.nameOffset;
List<UnlinkedEnumValueBuilder> values = <UnlinkedEnumValueBuilder>[];
for (FieldElement field in enumElement.fields) {
if (field.isConst && field.type.element == enumElement) {
- values.add(encodeUnlinkedEnumValue(ctx,
+ values.add(encodeUnlinkedEnumValue(
name: field.name,
nameOffset: field.nameOffset,
documentationComment: serializeDocumentation(field)));
@@ -469,7 +460,7 @@ class _LibrarySerializer {
*/
UnlinkedExecutableBuilder serializeExecutable(
ExecutableElement executableElement) {
- UnlinkedExecutableBuilder b = new UnlinkedExecutableBuilder(ctx);
+ UnlinkedExecutableBuilder b = new UnlinkedExecutableBuilder();
b.name = executableElement.name;
b.nameOffset = executableElement.nameOffset;
if (executableElement is! ConstructorElement &&
@@ -508,7 +499,7 @@ class _LibrarySerializer {
*/
UnlinkedExportNonPublicBuilder serializeExportNonPublic(
ExportElement exportElement) {
- UnlinkedExportNonPublicBuilder b = new UnlinkedExportNonPublicBuilder(ctx);
+ UnlinkedExportNonPublicBuilder b = new UnlinkedExportNonPublicBuilder();
b.offset = exportElement.nameOffset;
b.uriOffset = exportElement.uriOffset;
b.uriEnd = exportElement.uriEnd;
@@ -520,7 +511,7 @@ class _LibrarySerializer {
*/
UnlinkedExportPublicBuilder serializeExportPublic(
ExportElement exportElement) {
- UnlinkedExportPublicBuilder b = new UnlinkedExportPublicBuilder(ctx);
+ UnlinkedExportPublicBuilder b = new UnlinkedExportPublicBuilder();
b.uri = exportElement.uri;
b.combinators = exportElement.combinators.map(serializeCombinator).toList();
return b;
@@ -531,7 +522,7 @@ class _LibrarySerializer {
* Also, add pre-linked information about it to the [prelinkedImports] list.
*/
UnlinkedImportBuilder serializeImport(ImportElement importElement) {
- UnlinkedImportBuilder b = new UnlinkedImportBuilder(ctx);
+ UnlinkedImportBuilder b = new UnlinkedImportBuilder();
b.isDeferred = importElement.isDeferred;
b.offset = importElement.nameOffset;
b.combinators = importElement.combinators.map(serializeCombinator).toList();
@@ -560,7 +551,7 @@ class _LibrarySerializer {
*/
PrelinkedLibraryBuilder serializeLibrary() {
computePrefixMap();
- PrelinkedLibraryBuilder pb = new PrelinkedLibraryBuilder(ctx);
+ PrelinkedLibraryBuilder pb = new PrelinkedLibraryBuilder();
addCompilationUnitElements(libraryElement.definingCompilationUnit, 0);
for (int i = 0; i < libraryElement.parts.length; i++) {
addCompilationUnitElements(libraryElement.parts[i], i + 1);
@@ -577,7 +568,7 @@ class _LibrarySerializer {
UnlinkedParamBuilder serializeParam(ParameterElement parameter,
[Element context]) {
context ??= parameter;
- UnlinkedParamBuilder b = new UnlinkedParamBuilder(ctx);
+ UnlinkedParamBuilder b = new UnlinkedParamBuilder();
b.name = parameter.name;
b.nameOffset = parameter.nameOffset;
switch (parameter.parameterKind) {
@@ -615,9 +606,9 @@ class _LibrarySerializer {
return referenceMap.putIfAbsent(element, () {
assert(unlinkedReferences.length == prelinkedReferences.length);
int index = unlinkedReferences.length;
- unlinkedReferences.add(encodeUnlinkedReference(ctx, name: element.name));
- prelinkedReferences.add(
- encodePrelinkedReference(ctx, kind: PrelinkedReferenceKind.prefix));
+ unlinkedReferences.add(encodeUnlinkedReference(name: element.name));
+ prelinkedReferences
+ .add(encodePrelinkedReference(kind: PrelinkedReferenceKind.prefix));
return index;
});
}
@@ -627,7 +618,7 @@ class _LibrarySerializer {
*/
UnlinkedTypedefBuilder serializeTypedef(
FunctionTypeAliasElement typedefElement) {
- UnlinkedTypedefBuilder b = new UnlinkedTypedefBuilder(ctx);
+ UnlinkedTypedefBuilder b = new UnlinkedTypedefBuilder();
b.name = typedefElement.name;
b.nameOffset = typedefElement.nameOffset;
b.typeParameters =
@@ -646,7 +637,7 @@ class _LibrarySerializer {
*/
UnlinkedTypeParamBuilder serializeTypeParam(
TypeParameterElement typeParameter) {
- UnlinkedTypeParamBuilder b = new UnlinkedTypeParamBuilder(ctx);
+ UnlinkedTypeParamBuilder b = new UnlinkedTypeParamBuilder();
b.name = typeParameter.name;
b.nameOffset = typeParameter.nameOffset;
if (typeParameter.bound != null) {
@@ -659,7 +650,7 @@ class _LibrarySerializer {
* Serialize the given [type] into an [UnlinkedTypeRef].
*/
UnlinkedTypeRefBuilder serializeTypeRef(DartType type, Element context) {
- UnlinkedTypeRefBuilder b = new UnlinkedTypeRefBuilder(ctx);
+ UnlinkedTypeRefBuilder b = new UnlinkedTypeRefBuilder();
if (type is TypeParameterType) {
b.paramReference = findTypeParameterIndex(type, context);
} else {
@@ -694,9 +685,9 @@ class _LibrarySerializer {
if (prefix != null) {
prefixReference = serializePrefix(prefix);
}
- unlinkedReferences.add(encodeUnlinkedReference(ctx,
+ unlinkedReferences.add(encodeUnlinkedReference(
name: element.name, prefixReference: prefixReference));
- prelinkedReferences.add(encodePrelinkedReference(ctx,
+ prelinkedReferences.add(encodePrelinkedReference(
dependency: serializeDependency(dependentLibrary),
kind: element is FunctionTypeAliasElement
? PrelinkedReferenceKind.typedef
@@ -735,9 +726,9 @@ class _LibrarySerializer {
if (unresolvedReferenceIndex == null) {
assert(unlinkedReferences.length == prelinkedReferences.length);
unresolvedReferenceIndex = unlinkedReferences.length;
- unlinkedReferences.add(encodeUnlinkedReference(ctx));
- prelinkedReferences.add(encodePrelinkedReference(ctx,
- kind: PrelinkedReferenceKind.unresolved));
+ unlinkedReferences.add(encodeUnlinkedReference());
+ prelinkedReferences.add(
+ encodePrelinkedReference(kind: PrelinkedReferenceKind.unresolved));
}
return unresolvedReferenceIndex;
}
@@ -746,7 +737,7 @@ class _LibrarySerializer {
* Serialize the given [variable], creating an [UnlinkedVariable].
*/
UnlinkedVariableBuilder serializeVariable(PropertyInducingElement variable) {
- UnlinkedVariableBuilder b = new UnlinkedVariableBuilder(ctx);
+ UnlinkedVariableBuilder b = new UnlinkedVariableBuilder();
b.name = variable.name;
b.nameOffset = variable.nameOffset;
b.type = serializeTypeRef(variable.type, variable);
« no previous file with comments | « pkg/analyzer/lib/src/summary/public_namespace_computer.dart ('k') | pkg/analyzer/test/src/summary/resynthesize_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698