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

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

Issue 1762193002: Resynthesize codeOffset/codeLength properties. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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_ast.dart
diff --git a/pkg/analyzer/lib/src/summary/summarize_ast.dart b/pkg/analyzer/lib/src/summary/summarize_ast.dart
index d0ad34c7503559df9b7d8a4844911b3122fd648d..4b14beede96b30e80db3d126f39714b9a166f1df 100644
--- a/pkg/analyzer/lib/src/summary/summarize_ast.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart
@@ -93,9 +93,8 @@ class _ConstExprSerializer extends AbstractConstExprSerializer {
Expression target = access.target;
if (target is Identifier) {
EntityRefBuilder targetRef = serializeIdentifier(target);
- return new EntityRefBuilder(
- reference: visitor.serializeReference(
- targetRef.reference, access.propertyName.name));
+ return new EntityRefBuilder(reference: visitor.serializeReference(
+ targetRef.reference, access.propertyName.name));
} else {
// TODO(scheglov) should we handle other targets in malformed constants?
throw new StateError('Unexpected target type: ${target.runtimeType}');
@@ -349,6 +348,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
* and store the result in [classes].
*/
void serializeClass(
+ AstNode node,
Token abstractKeyword,
String name,
int nameOffset,
@@ -395,6 +395,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
b.isAbstract = abstractKeyword != null;
b.documentationComment = serializeDocumentation(documentationComment);
b.annotations = serializeAnnotations(annotations);
+ serializeCodeRange(b, node);
classes.add(b);
scopes.removeLast();
assert(scopes.length == oldScopesLength);
@@ -402,6 +403,42 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
variables = oldVariables;
}
+ void serializeCodeRange(Object b, AstNode node) {
+ if (b is UnlinkedClassBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedEnumBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedExecutableBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedParamBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedTypedefBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedTypeParamBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedUnitBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ } else if (b is UnlinkedVariableBuilder) {
+ b.hasCodeRange = true;
+ b.codeOffset = node.offset;
+ b.codeLength = node.length;
+ }
+ }
+
/**
* Serialize a [Combinator] into an [UnlinkedCombinator].
*/
@@ -438,6 +475,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
b.libraryNameLength = libraryNameLength;
b.libraryDocumentationComment = libraryDocumentationComment;
b.libraryAnnotations = libraryAnnotations;
+ serializeCodeRange(b, compilationUnit);
b.classes = classes;
b.enums = enums;
b.executables = executables;
@@ -485,6 +523,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
* [UnlinkedExecutable].
*/
UnlinkedExecutableBuilder serializeExecutable(
+ AstNode node,
String name,
int nameOffset,
bool isGetter,
@@ -537,6 +576,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
}
b.documentationComment = serializeDocumentation(documentationComment);
b.annotations = serializeAnnotations(annotations);
+ serializeCodeRange(b, node);
if (returnType == null && !isSemanticallyStatic) {
b.inferredReturnTypeSlot = assignSlot();
}
@@ -615,6 +655,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
b.name = node.identifier.name;
b.nameOffset = node.identifier.offset;
b.annotations = serializeAnnotations(node.metadata);
+ serializeCodeRange(b, node);
switch (node.kind) {
case ParameterKind.REQUIRED:
b.kind = UnlinkedParamKind.required;
@@ -772,6 +813,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
b.type = serializeTypeName(variables.type);
b.documentationComment = serializeDocumentation(documentationComment);
b.annotations = serializeAnnotations(annotations);
+ serializeCodeRange(b, variables.parent);
if (variable.isConst ||
variable.isFinal && isField && !isDeclaredStatic) {
Expression initializer = variable.initializer;
@@ -808,6 +850,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
TypeName superclass =
node.extendsClause == null ? null : node.extendsClause.superclass;
serializeClass(
+ node,
node.abstractKeyword,
node.name.name,
node.name.offset,
@@ -824,6 +867,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
@override
void visitClassTypeAlias(ClassTypeAlias node) {
serializeClass(
+ node,
node.abstractKeyword,
node.name.name,
node.name.offset,
@@ -915,6 +959,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
.toList();
b.documentationComment = serializeDocumentation(node.documentationComment);
b.annotations = serializeAnnotations(node.metadata);
+ serializeCodeRange(b, node);
enums.add(b);
}
@@ -950,6 +995,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
@override
void visitFunctionDeclaration(FunctionDeclaration node) {
executables.add(serializeExecutable(
+ node,
node.name.name,
node.name.offset,
node.isGetter,
@@ -969,6 +1015,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
void visitFunctionExpression(FunctionExpression node) {
if (node.parent is! FunctionDeclaration) {
executables.add(serializeExecutable(
+ node,
null,
node.offset,
false,
@@ -1004,6 +1051,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
.toList();
b.documentationComment = serializeDocumentation(node.documentationComment);
b.annotations = serializeAnnotations(node.metadata);
+ serializeCodeRange(b, node);
typedefs.add(b);
scopes.removeLast();
assert(scopes.length == oldScopesLength);
@@ -1063,6 +1111,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
@override
void visitMethodDeclaration(MethodDeclaration node) {
executables.add(serializeExecutable(
+ node,
node.name.name,
node.name.offset,
node.isGetter,
@@ -1111,6 +1160,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
b.bound = serializeTypeName(node.bound);
}
b.annotations = serializeAnnotations(node.metadata);
+ serializeCodeRange(b, node);
return b;
}

Powered by Google App Engine
This is Rietveld 408576698