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

Unified Diff: pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart

Issue 2691523002: Ensure locations are always provided, but don't store them yet. (Closed)
Patch Set: Address comments. Created 3 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/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
index 69223c7d44c0a0542cc984eb0e5381dc7023d7fc..a58d1eae22de29ece0f0d9797ce73b8fbe8bddb8 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
@@ -24,6 +24,9 @@ import '../source/source_library_builder.dart' show
import '../source/source_class_builder.dart' show
SourceClassBuilder;
+import '../util/relativize.dart' show
+ relativizeUri;
+
import 'kernel_builder.dart' show
Builder,
ClassBuilder,
@@ -61,18 +64,18 @@ class KernelLibraryBuilder
final List<List> argumentsWithMissingDefaultValues = <List>[];
KernelLibraryBuilder(Uri uri, Uri fileUri, Loader loader)
- : library = new Library(uri),
+ : library = new Library(uri, fileUri: relativizeUri(fileUri)),
super(loader, fileUri);
Uri get uri => library.importUri;
KernelTypeBuilder addNamedType(String name,
- List<KernelTypeBuilder> arguments) {
+ List<KernelTypeBuilder> arguments, int charOffset) {
KernelNamedTypeBuilder type =
- new KernelNamedTypeBuilder(name, arguments);
+ new KernelNamedTypeBuilder(name, arguments, charOffset, fileUri);
if (identical(name, "dynamic")) {
- // TODO(ahe): Make const.
- type.builder = new DynamicTypeBuilder(const DynamicType());
+ type.builder =
+ new DynamicTypeBuilder(const DynamicType(), this, charOffset);
} else {
addType(type);
}
@@ -80,24 +83,25 @@ class KernelLibraryBuilder
}
KernelTypeBuilder addMixinApplication(KernelTypeBuilder supertype,
- List<KernelTypeBuilder> mixins) {
- KernelTypeBuilder type =
- new KernelMixinApplicationBuilder(supertype, mixins);
+ List<KernelTypeBuilder> mixins, int charOffset) {
+ KernelTypeBuilder type = new KernelMixinApplicationBuilder(
+ supertype, mixins, charOffset, fileUri);
return addType(type);
}
- KernelTypeBuilder addVoidType() {
- return new KernelNamedTypeBuilder("void", null);
+ KernelTypeBuilder addVoidType(int charOffset) {
+ return new KernelNamedTypeBuilder("void", null, charOffset, fileUri);
}
ClassBuilder addClass(List<MetadataBuilder> metadata,
int modifiers, String className,
List<TypeVariableBuilder> typeVariables, KernelTypeBuilder supertype,
- List<KernelTypeBuilder> interfaces) {
+ List<KernelTypeBuilder> interfaces, int charOffset) {
ClassBuilder cls = new SourceClassBuilder(metadata, modifiers, className,
typeVariables, supertype, interfaces, classMembers, declarationTypes,
this,
- new List<ConstructorReferenceBuilder>.from(constructorReferences));
+ new List<ConstructorReferenceBuilder>.from(constructorReferences),
+ charOffset);
constructorReferences.clear();
classMembers.forEach((String name, MemberBuilder builder) {
while (builder != null) {
@@ -113,58 +117,61 @@ class KernelLibraryBuilder
NamedMixinApplicationBuilder addNamedMixinApplication(
List<MetadataBuilder> metadata, String name,
List<TypeVariableBuilder> typeVariables, int modifiers,
- KernelTypeBuilder mixinApplication, List<KernelTypeBuilder> interfaces) {
+ KernelTypeBuilder mixinApplication, List<KernelTypeBuilder> interfaces,
+ int charOffset) {
NamedMixinApplicationBuilder builder =
new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables,
- modifiers, mixinApplication, interfaces, declarationTypes, this);
+ modifiers, mixinApplication, interfaces, declarationTypes, this,
+ charOffset);
// Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`.
endNestedDeclaration();
return addBuilder(name, builder);
}
FieldBuilder addField(List<MetadataBuilder> metadata,
- int modifiers, KernelTypeBuilder type, String name) {
- return addBuilder(name,
- new KernelFieldBuilder(metadata, type, name, modifiers));
+ int modifiers, KernelTypeBuilder type, String name, int charOffset) {
+ return addBuilder(name, new KernelFieldBuilder(
+ metadata, type, name, modifiers, this, charOffset));
}
ProcedureBuilder addProcedure(List<MetadataBuilder> metadata,
int modifiers, KernelTypeBuilder returnType, String name,
List<TypeVariableBuilder> typeVariables,
List<FormalParameterBuilder> formals, AsyncMarker asyncModifier,
- ProcedureKind kind) {
+ ProcedureKind kind, int charOffset) {
// Nested declaration began in `OutlineBuilder.beginMethod` or
// `OutlineBuilder.beginTopLevelMethod`.
endNestedDeclaration().resolveTypes(typeVariables);
return addBuilder(name,
new KernelProcedureBuilder(metadata, modifiers, returnType, name,
- typeVariables, formals, asyncModifier, kind));
+ typeVariables, formals, asyncModifier, kind, this, charOffset));
}
void addFactoryMethod(List<MetadataBuilder> metadata,
ConstructorReferenceBuilder constructorName,
List<FormalParameterBuilder> formals, AsyncMarker asyncModifier,
- ConstructorReferenceBuilder redirectionTarget) {
+ ConstructorReferenceBuilder redirectionTarget, int charOffset) {
String name = constructorName.name;
assert(constructorName.suffix == null);
addBuilder(name,
new KernelProcedureBuilder(metadata, staticMask, null, name, null,
- formals, asyncModifier, ProcedureKind.Factory, redirectionTarget));
+ formals, asyncModifier, ProcedureKind.Factory, this, charOffset,
+ redirectionTarget));
}
EnumBuilder addEnum(List<MetadataBuilder> metadata, String name,
- List<String> constants) {
+ List<String> constants, int charOffset) {
return addBuilder(name,
- new KernelEnumBuilder(metadata, name, constants, this));
+ new KernelEnumBuilder(metadata, name, constants, this, charOffset));
}
FunctionTypeAliasBuilder addFunctionTypeAlias(List<MetadataBuilder> metadata,
KernelTypeBuilder returnType, String name,
List<TypeVariableBuilder> typeVariables,
- List<FormalParameterBuilder> formals) {
+ List<FormalParameterBuilder> formals, int charOffset) {
FunctionTypeAliasBuilder typedef = new KernelFunctionTypeAliasBuilder(
metadata, returnType, name, typeVariables, formals, declarationTypes,
- this);
+ this, charOffset);
// Nested declaration began in `OutlineBuilder.beginFunctionTypeAlias`.
endNestedDeclaration();
return addBuilder(name, typedef);
@@ -172,14 +179,14 @@ class KernelLibraryBuilder
KernelFormalParameterBuilder addFormalParameter(
List<MetadataBuilder> metadata, int modifiers,
- KernelTypeBuilder type, String name, bool hasThis) {
+ KernelTypeBuilder type, String name, bool hasThis, int charOffset) {
return new KernelFormalParameterBuilder(
- metadata, modifiers, type, name, hasThis);
+ metadata, modifiers, type, name, hasThis, this, charOffset);
}
KernelTypeVariableBuilder addTypeVariable(String name,
- KernelTypeBuilder bound) {
- return new KernelTypeVariableBuilder(name, bound);
+ KernelTypeBuilder bound, int charOffset) {
+ return new KernelTypeVariableBuilder(name, this, charOffset, bound);
}
void buildBuilder(Builder builder) {
@@ -226,15 +233,15 @@ class KernelLibraryBuilder
}
Builder buildAmbiguousBuilder(
- String name, Builder builder, Builder other) {
+ String name, Builder builder, Builder other, int charOffset) {
if (builder.next == null && other.next == null) {
if (builder.isGetter && other.isSetter) {
- return new MixedAccessor(builder, other);
+ return new MixedAccessor(builder, other, this);
} else if (builder.isSetter && other.isGetter) {
- return new MixedAccessor(other, builder);
+ return new MixedAccessor(other, builder, this);
}
}
- return new KernelInvalidTypeBuilder(name, this);
+ return new KernelInvalidTypeBuilder(name, charOffset, fileUri);
}
void addArgumentsWithMissingDefaultValues(Arguments arguments,

Powered by Google App Engine
This is Rietveld 408576698