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 862b099f695ca26c19ee9be63f764abb9b4df26e..9771f0205a86c639bcdf4852641d7aca289cd7d0 100644 |
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart |
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart |
@@ -233,8 +233,8 @@ class _LibraryResynthesizer { |
finishTypeParameter( |
serializedClass.typeParameters[i], currentTypeParameters[i]); |
} |
- ClassElementImpl classElement = |
- new ClassElementImpl(serializedClass.name, -1); |
+ ClassElementImpl classElement = new ClassElementImpl( |
+ serializedClass.name, serializedClass.nameOffset); |
classElement.mixinApplication = serializedClass.isMixinApplication; |
InterfaceTypeImpl correspondingType = new InterfaceTypeImpl(classElement); |
if (serializedClass.supertype != null) { |
@@ -321,8 +321,8 @@ class _LibraryResynthesizer { |
void buildConstructor(UnlinkedExecutable serializedExecutable, |
ElementHolder holder, InterfaceType classType) { |
assert(serializedExecutable.kind == UnlinkedExecutableKind.constructor); |
- ConstructorElementImpl constructorElement = |
- new ConstructorElementImpl(serializedExecutable.name, -1); |
+ ConstructorElementImpl constructorElement = new ConstructorElementImpl( |
+ serializedExecutable.name, serializedExecutable.nameOffset); |
constructorElement.returnType = classType; |
buildExecutableCommonParts(constructorElement, serializedExecutable); |
constructorElement.factory = serializedExecutable.isFactory; |
@@ -338,7 +338,7 @@ class _LibraryResynthesizer { |
assert(!isCoreLibrary); |
// TODO(paulberry): add offset support (for this element type and others) |
ClassElementImpl classElement = |
- new ClassElementImpl(serializedEnum.name, -1); |
+ new ClassElementImpl(serializedEnum.name, serializedEnum.nameOffset); |
classElement.enum2 = true; |
InterfaceType enumType = new InterfaceTypeImpl(classElement); |
classElement.type = enumType; |
@@ -359,8 +359,8 @@ class _LibraryResynthesizer { |
memberHolder.addField(valuesField); |
buildImplicitAccessors(valuesField, memberHolder); |
for (UnlinkedEnumValue serializedEnumValue in serializedEnum.values) { |
- ConstFieldElementImpl valueField = |
- new ConstFieldElementImpl(serializedEnumValue.name, -1); |
+ ConstFieldElementImpl valueField = new ConstFieldElementImpl( |
+ serializedEnumValue.name, serializedEnumValue.nameOffset); |
valueField.const3 = true; |
valueField.static = true; |
valueField.type = enumType; |
@@ -392,11 +392,12 @@ class _LibraryResynthesizer { |
case UnlinkedExecutableKind.functionOrMethod: |
if (isTopLevel) { |
FunctionElementImpl executableElement = |
- new FunctionElementImpl(name, -1); |
+ new FunctionElementImpl(name, serializedExecutable.nameOffset); |
buildExecutableCommonParts(executableElement, serializedExecutable); |
holder.addFunction(executableElement); |
} else { |
- MethodElementImpl executableElement = new MethodElementImpl(name, -1); |
+ MethodElementImpl executableElement = |
+ new MethodElementImpl(name, serializedExecutable.nameOffset); |
buildExecutableCommonParts(executableElement, serializedExecutable); |
executableElement.static = serializedExecutable.isStatic; |
holder.addMethod(executableElement); |
@@ -405,7 +406,8 @@ class _LibraryResynthesizer { |
case UnlinkedExecutableKind.getter: |
case UnlinkedExecutableKind.setter: |
PropertyAccessorElementImpl executableElement = |
- new PropertyAccessorElementImpl(name, -1); |
+ new PropertyAccessorElementImpl( |
+ name, serializedExecutable.nameOffset); |
if (isTopLevel) { |
executableElement.static = true; |
} else { |
@@ -486,7 +488,8 @@ class _LibraryResynthesizer { |
*/ |
ExportElement buildExport(UnlinkedExportPublic serializedExportPublic, |
UnlinkedExportNonPublic serializedExportNonPublic) { |
- ExportElementImpl exportElement = new ExportElementImpl(0); |
+ ExportElementImpl exportElement = |
+ new ExportElementImpl(serializedExportNonPublic.offset); |
String exportedLibraryUri = summaryResynthesizer.sourceFactory |
.resolveUri(librarySource, serializedExportPublic.uri) |
.uri |
@@ -522,7 +525,7 @@ class _LibraryResynthesizer { |
String name = element.name; |
DartType type = element.type; |
PropertyAccessorElementImpl getter = |
- new PropertyAccessorElementImpl(name, -1); |
+ new PropertyAccessorElementImpl(name, element.nameOffset); |
getter.getter = true; |
getter.static = element.isStatic; |
getter.synthetic = true; |
@@ -534,12 +537,12 @@ class _LibraryResynthesizer { |
element.getter = getter; |
if (!(element.isConst || element.isFinal)) { |
PropertyAccessorElementImpl setter = |
- new PropertyAccessorElementImpl(name, -1); |
+ new PropertyAccessorElementImpl(name, element.nameOffset); |
setter.setter = true; |
setter.static = element.isStatic; |
setter.synthetic = true; |
setter.parameters = <ParameterElement>[ |
- new ParameterElementImpl('_$name', -1) |
+ new ParameterElementImpl('_$name', element.nameOffset) |
..synthetic = true |
..type = type |
..parameterKind = ParameterKind.REQUIRED |
@@ -621,7 +624,8 @@ class _LibraryResynthesizer { |
if (serializedImport.prefixReference != 0) { |
UnlinkedReference serializedPrefix = |
unlinkedUnits[0].references[serializedImport.prefixReference]; |
- importElement.prefix = new PrefixElementImpl(serializedPrefix.name, -1); |
+ importElement.prefix = new PrefixElementImpl( |
+ serializedPrefix.name, serializedImport.prefixOffset); |
} |
importElement.combinators = |
serializedImport.combinators.map(buildCombinator).toList(); |
@@ -632,9 +636,12 @@ class _LibraryResynthesizer { |
* Main entry point. Resynthesize the [LibraryElement] and return it. |
*/ |
LibraryElement buildLibrary() { |
- // TODO(paulberry): is it ok to pass -1 for offset and nameLength? |
+ bool hasName = unlinkedUnits[0].libraryName.isNotEmpty; |
LibraryElementImpl libraryElement = new LibraryElementImpl( |
- summaryResynthesizer.context, unlinkedUnits[0].libraryName, -1, -1); |
+ summaryResynthesizer.context, |
+ unlinkedUnits[0].libraryName, |
+ hasName ? unlinkedUnits[0].libraryNameOffset : -1, |
+ unlinkedUnits[0].libraryNameLength); |
CompilationUnitElementImpl definingCompilationUnit = |
new CompilationUnitElementImpl(librarySource.shortName); |
libraryElement.definingCompilationUnit = definingCompilationUnit; |
@@ -684,8 +691,8 @@ class _LibraryResynthesizer { |
* Resynthesize a [ParameterElement]. |
*/ |
ParameterElement buildParameter(UnlinkedParam serializedParameter) { |
- ParameterElementImpl parameterElement = |
- new ParameterElementImpl(serializedParameter.name, -1); |
+ ParameterElementImpl parameterElement = new ParameterElementImpl( |
+ serializedParameter.name, serializedParameter.nameOffset); |
if (serializedParameter.isFunctionTyped) { |
FunctionElementImpl parameterTypeElement = |
new FunctionElementImpl('', -1); |
@@ -843,7 +850,8 @@ class _LibraryResynthesizer { |
serializedTypedef.typeParameters[i], currentTypeParameters[i]); |
} |
FunctionTypeAliasElementImpl functionTypeAliasElement = |
- new FunctionTypeAliasElementImpl(serializedTypedef.name, -1); |
+ new FunctionTypeAliasElementImpl( |
+ serializedTypedef.name, serializedTypedef.nameOffset); |
functionTypeAliasElement.parameters = |
serializedTypedef.parameters.map(buildParameter).toList(); |
if (serializedTypedef.returnType != null) { |
@@ -872,7 +880,8 @@ class _LibraryResynthesizer { |
TypeParameterElement buildTypeParameter( |
UnlinkedTypeParam serializedTypeParameter) { |
TypeParameterElementImpl typeParameterElement = |
- new TypeParameterElementImpl(serializedTypeParameter.name, -1); |
+ new TypeParameterElementImpl( |
+ serializedTypeParameter.name, serializedTypeParameter.nameOffset); |
typeParameterElement.type = new TypeParameterTypeImpl(typeParameterElement); |
return typeParameterElement; |
} |
@@ -883,14 +892,14 @@ class _LibraryResynthesizer { |
void buildVariable(UnlinkedVariable serializedVariable, |
[ElementHolder holder]) { |
if (holder == null) { |
- TopLevelVariableElementImpl element = |
- new TopLevelVariableElementImpl(serializedVariable.name, -1); |
+ TopLevelVariableElementImpl element = new TopLevelVariableElementImpl( |
+ serializedVariable.name, serializedVariable.nameOffset); |
buildVariableCommonParts(element, serializedVariable); |
unitHolder.addTopLevelVariable(element); |
buildImplicitAccessors(element, unitHolder); |
} else { |
- FieldElementImpl element = |
- new FieldElementImpl(serializedVariable.name, -1); |
+ FieldElementImpl element = new FieldElementImpl( |
+ serializedVariable.name, serializedVariable.nameOffset); |
buildVariableCommonParts(element, serializedVariable); |
element.static = serializedVariable.isStatic; |
holder.addField(element); |