Index: pkg/analyzer/lib/src/summary/resynthesize.dart |
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart |
index df23151bff8c755ddd6b2946a0793a126f1c36a5..8c9869f6bbf1e2f96cc9339ddaff74b8e3f66885 100644 |
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart |
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart |
@@ -1020,6 +1020,7 @@ class _LibraryResynthesizer { |
classElement.type = correspondingType; |
buildDocumentation(classElement, serializedClass.documentationComment); |
buildAnnotations(classElement, serializedClass.annotations); |
+ buildCodeRange(classElement, serializedClass.codeRange); |
resolveConstructorInitializers(classElement); |
unitHolder.addType(classElement); |
currentTypeParameters.removeLast(); |
@@ -1028,6 +1029,12 @@ class _LibraryResynthesizer { |
constructors = null; |
} |
+ void buildCodeRange(ElementImpl element, CodeRange codeRange) { |
+ if (codeRange != null) { |
+ element.setCodeRange(codeRange.offset, codeRange.length); |
+ } |
+ } |
+ |
/** |
* Resynthesize a [NamespaceCombinator]. |
*/ |
@@ -1151,6 +1158,7 @@ class _LibraryResynthesizer { |
classElement.supertype = summaryResynthesizer.typeProvider.objectType; |
buildDocumentation(classElement, serializedEnum.documentationComment); |
buildAnnotations(classElement, serializedEnum.annotations); |
+ buildCodeRange(classElement, serializedEnum.codeRange); |
ElementHolder memberHolder = new ElementHolder(); |
// Build the 'index' field. |
FieldElementImpl indexField = new FieldElementImpl('index', -1); |
@@ -1306,6 +1314,7 @@ class _LibraryResynthesizer { |
buildDocumentation( |
executableElement, serializedExecutable.documentationComment); |
buildAnnotations(executableElement, serializedExecutable.annotations); |
+ buildCodeRange(executableElement, serializedExecutable.codeRange); |
executableElement.functions = |
serializedExecutable.localFunctions.map(buildLocalFunction).toList(); |
executableElement.labels = |
@@ -1707,6 +1716,7 @@ class _LibraryResynthesizer { |
} |
parameterElement.synthetic = synthetic; |
buildAnnotations(parameterElement, serializedParameter.annotations); |
+ buildCodeRange(parameterElement, serializedParameter.codeRange); |
if (serializedParameter.isFunctionTyped) { |
FunctionElementImpl parameterTypeElement = |
new FunctionElementImpl('', -1); |
@@ -1840,6 +1850,7 @@ class _LibraryResynthesizer { |
buildDocumentation( |
functionTypeAliasElement, serializedTypedef.documentationComment); |
buildAnnotations(functionTypeAliasElement, serializedTypedef.annotations); |
+ buildCodeRange(functionTypeAliasElement, serializedTypedef.codeRange); |
unitHolder.addTypeAlias(functionTypeAliasElement); |
currentTypeParameters.removeLast(); |
assert(currentTypeParameters.isEmpty); |
@@ -1860,6 +1871,7 @@ class _LibraryResynthesizer { |
serializedTypeParameter.name, serializedTypeParameter.nameOffset); |
typeParameterElement.type = new TypeParameterTypeImpl(typeParameterElement); |
buildAnnotations(typeParameterElement, serializedTypeParameter.annotations); |
+ buildCodeRange(typeParameterElement, serializedTypeParameter.codeRange); |
return typeParameterElement; |
} |
@@ -1933,6 +1945,7 @@ class _LibraryResynthesizer { |
buildVariableInitializer(element, serializedVariable.initializer); |
buildDocumentation(element, serializedVariable.documentationComment); |
buildAnnotations(element, serializedVariable.annotations); |
+ buildCodeRange(element, serializedVariable.codeRange); |
} |
/** |
@@ -1947,6 +1960,7 @@ class _LibraryResynthesizer { |
FunctionElementImpl initializerElement = |
buildLocalFunction(serializedInitializer); |
initializerElement.synthetic = true; |
+ initializerElement.setCodeRange(null, null); |
variable.initializer = initializerElement; |
} |
@@ -2204,6 +2218,7 @@ class _LibraryResynthesizer { |
for (PropertyAccessorElementImpl accessor in unit.accessors) { |
elementMap[accessor.identifier] = accessor; |
} |
+ buildCodeRange(unit, unlinkedUnit.codeRange); |
resynthesizedUnits[absoluteUri] = unit; |
resynthesizedElements[absoluteUri] = elementMap; |
assert(currentTypeParameters.isEmpty); |