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

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

Issue 2485043004: Don't serialize elements of top-level function/constructor/method bodies. (Closed)
Patch Set: Created 4 years, 1 month 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 646eed89bbb07a13773bb02c7fad1e11fab781ce..b81fe880eae2a20c4dc997f82c030105c9f29571 100644
--- a/pkg/analyzer/lib/src/summary/summarize_ast.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart
@@ -624,7 +624,8 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
NodeList<Annotation> annotations,
TypeParameterList typeParameters,
bool isExternal,
- bool serializeBodyExpr) {
+ bool serializeBodyExpr,
+ bool serializeBody) {
int oldScopesLength = scopes.length;
_TypeParameterScope typeParameterScope = new _TypeParameterScope();
scopes.add(typeParameterScope);
@@ -682,7 +683,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
_parameterNames.addAll(formalParameters.parameters
.map((FormalParameter p) => p.identifier.name));
}
- serializeFunctionBody(b, null, body, serializeBodyExpr);
+ serializeFunctionBody(b, null, body, serializeBodyExpr, serializeBody);
_parameterNames = oldParameterNames;
scopes.removeLast();
assert(scopes.length == oldScopesLength);
@@ -709,7 +710,8 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
UnlinkedExecutableBuilder b,
List<ConstructorInitializer> initializers,
AstNode body,
- bool serializeBodyExpr) {
+ bool serializeBodyExpr,
+ bool serializeBody) {
if (body is BlockFunctionBody || body is ExpressionFunctionBody) {
for (UnlinkedParamBuilder parameter in b.parameters) {
parameter.visibleOffset = body.offset;
@@ -731,7 +733,9 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
initializer.accept(this);
}
}
- body.accept(this);
+ if (serializeBody) {
+ body.accept(this);
+ }
if (serializeBodyExpr) {
if (body is Expression) {
b.bodyExpr =
@@ -787,7 +791,8 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
}
UnlinkedExecutableBuilder initializer =
new UnlinkedExecutableBuilder(nameOffset: expression.offset);
- serializeFunctionBody(initializer, null, expression, serializeBodyExpr);
+ serializeFunctionBody(
+ initializer, null, expression, serializeBodyExpr, true);
initializer.inferredReturnTypeSlot = assignSlot();
return initializer;
}
@@ -1096,7 +1101,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
b.annotations = serializeAnnotations(node.metadata);
b.codeRange = serializeCodeRange(node);
Map<int, int> localClosureIndexMap = serializeFunctionBody(
- b, node.initializers, node.body, node.constKeyword != null);
+ b, node.initializers, node.body, node.constKeyword != null, false);
if (node.constKeyword != null) {
Set<String> constructorParameterNames =
node.parameters.parameters.map((p) => p.identifier.name).toSet();
@@ -1214,7 +1219,8 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
node.metadata,
node.functionExpression.typeParameters,
node.externalKeyword != null,
- false));
+ false,
+ node.parent is FunctionDeclarationStatement));
}
@override
@@ -1238,7 +1244,8 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
null,
node.typeParameters,
false,
- _serializeClosureBodyExprs));
+ _serializeClosureBodyExprs,
+ true));
}
}
@@ -1339,6 +1346,7 @@ class _SummarizeAstVisitor extends RecursiveAstVisitor {
node.metadata,
node.typeParameters,
node.externalKeyword != null,
+ false,
false));
}

Powered by Google App Engine
This is Rietveld 408576698