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

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

Issue 1762193002: Resynthesize codeOffset/codeLength properties. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Use CodeRange object. 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_elements.dart
diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
index a3b8c030b6d27ce782d48561a4f11099a9c73f87..212bb9dfe864fcd418a6816730864adf2897aafb 100644
--- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
@@ -369,6 +369,7 @@ class _CompilationUnitSerializer {
unlinkedUnit.publicNamespace =
new UnlinkedPublicNamespaceBuilder(names: names);
}
+ unlinkedUnit.codeRange = serializeCodeRange(compilationUnit);
unlinkedUnit.classes = compilationUnit.types.map(serializeClass).toList();
unlinkedUnit.enums = compilationUnit.enums.map(serializeEnum).toList();
unlinkedUnit.typedefs =
@@ -537,6 +538,7 @@ class _CompilationUnitSerializer {
b.isMixinApplication = classElement.isMixinApplication;
b.documentationComment = serializeDocumentation(classElement);
b.annotations = serializeAnnotations(classElement);
+ b.codeRange = serializeCodeRange(classElement);
return b;
}
@@ -586,6 +588,13 @@ class _CompilationUnitSerializer {
return null;
}
+ CodeRangeBuilder serializeCodeRange(Element element) {
+ if (element is ElementImpl && element.codeOffset != null) {
+ return new CodeRangeBuilder(offset: element.codeOffset, length: element.codeLength);
+ }
+ return null;
+ }
+
/**
* Serialize the given [combinator] into an [UnlinkedCombinator].
*/
@@ -648,6 +657,7 @@ class _CompilationUnitSerializer {
b.values = values;
b.documentationComment = serializeDocumentation(enumElement);
b.annotations = serializeAnnotations(enumElement);
+ b.codeRange = serializeCodeRange(enumElement);
return b;
}
@@ -736,6 +746,7 @@ class _CompilationUnitSerializer {
b.isExternal = executableElement.isExternal;
b.documentationComment = serializeDocumentation(executableElement);
b.annotations = serializeAnnotations(executableElement);
+ b.codeRange = serializeCodeRange(executableElement);
if (executableElement is FunctionElement) {
SourceRange visibleRange = executableElement.visibleRange;
if (visibleRange != null) {
@@ -832,6 +843,7 @@ class _CompilationUnitSerializer {
break;
}
b.annotations = serializeAnnotations(parameter);
+ b.codeRange = serializeCodeRange(parameter);
b.isInitializingFormal = parameter.isInitializingFormal;
DartType type = parameter.type;
if (parameter.hasImplicitType) {
@@ -921,6 +933,7 @@ class _CompilationUnitSerializer {
b.parameters = typedefElement.parameters.map(serializeParam).toList();
b.documentationComment = serializeDocumentation(typedefElement);
b.annotations = serializeAnnotations(typedefElement);
+ b.codeRange = serializeCodeRange(typedefElement);
return b;
}
@@ -936,6 +949,7 @@ class _CompilationUnitSerializer {
b.bound = serializeTypeRef(typeParameter.bound, typeParameter);
}
b.annotations = serializeAnnotations(typeParameter);
+ b.codeRange = serializeCodeRange(typeParameter);
return b;
}
@@ -1085,6 +1099,7 @@ class _CompilationUnitSerializer {
(variable.initializer != null || !variable.isStatic)) {
b.inferredTypeSlot = storeInferredType(variable.type, variable);
}
+ b.codeRange = serializeCodeRange(variable);
if (variable is LocalVariableElement) {
SourceRange visibleRange = variable.visibleRange;
if (visibleRange != null) {
@@ -1100,6 +1115,18 @@ class _CompilationUnitSerializer {
}
/**
+ * Create a new slot id and return it. If [hasCycle] is `true`, arrange for
+ * the slot id to be included in [LinkedUnit.constCycles].
+ */
+ int storeConstCycle(bool hasCycle) {
+ int slot = ++numSlots;
+ if (hasCycle) {
+ constCycles.add(slot);
+ }
+ return slot;
+ }
+
+ /**
* Create a slot id for the given [type] (which is an inferred type). If
* [type] is not `dynamic`, it is stored in [linkedTypes] so that once the
* compilation unit has been fully visited, it will be serialized into
@@ -1113,18 +1140,6 @@ class _CompilationUnitSerializer {
}
/**
- * Create a new slot id and return it. If [hasCycle] is `true`, arrange for
- * the slot id to be included in [LinkedUnit.constCycles].
- */
- int storeConstCycle(bool hasCycle) {
- int slot = ++numSlots;
- if (hasCycle) {
- constCycles.add(slot);
- }
- return slot;
- }
-
- /**
* Create a slot id for the given [type] (which may be either a propagated
* type or an inferred type). If [type] is not `null`, it is stored in
* [linkedTypes] so that once the compilation unit has been fully visited,
« no previous file with comments | « pkg/analyzer/lib/src/summary/summarize_ast.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