| Index: pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
|
| index 56b8c79519bb6d8ae735e9948fe856fd5f9908fc..5854e6f9326dd02685ae3a8968c93468284ec69c 100644
|
| --- a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
|
| @@ -20,7 +20,12 @@ import 'package:kernel/ast.dart'
|
| import '../errors.dart' show internalError;
|
|
|
| import '../kernel/kernel_builder.dart'
|
| - show Builder, KernelInvalidTypeBuilder, KernelTypeBuilder, LibraryBuilder;
|
| + show
|
| + Builder,
|
| + KernelInvalidTypeBuilder,
|
| + KernelTypeBuilder,
|
| + LibraryBuilder,
|
| + Scope;
|
|
|
| import '../kernel/redirecting_factory_body.dart' show RedirectingFactoryBody;
|
|
|
| @@ -33,20 +38,12 @@ import 'dill_loader.dart' show DillLoader;
|
| class DillLibraryBuilder extends LibraryBuilder<KernelTypeBuilder, Library> {
|
| final Uri uri;
|
|
|
| - final Map<String, Builder> members = <String, Builder>{};
|
| -
|
| - // TODO(ahe): Some export information needs to be serialized.
|
| - final Map<String, Builder> exports = <String, Builder>{};
|
| -
|
| final DillLoader loader;
|
|
|
| Library library;
|
|
|
| - DillLibraryBuilder(Uri uri, this.loader)
|
| - : uri = uri,
|
| - super(uri);
|
| -
|
| - get scope => internalError("Scope not supported");
|
| + DillLibraryBuilder(this.uri, this.loader)
|
| + : super(uri, new Scope.top(), new Scope.top());
|
|
|
| Uri get fileUri => uri;
|
|
|
| @@ -81,8 +78,9 @@ class DillLibraryBuilder extends LibraryBuilder<KernelTypeBuilder, Library> {
|
| void addMember(Member member) {
|
| String name = member.name.name;
|
| if (name == "_exports#") {
|
| + // TODO(ahe): Add this to exportScope.
|
| // This is a hack / work around for storing exports in dill files. See
|
| - // [compile_platform.dart](../compile_platform.dart).
|
| + // [compile_platform_dartk.dart](../analyzer/compile_platform_dartk.dart).
|
| } else {
|
| addBuilder(name, new DillMemberBuilder(member, this), member.fileOffset);
|
| }
|
| @@ -90,9 +88,18 @@ class DillLibraryBuilder extends LibraryBuilder<KernelTypeBuilder, Library> {
|
|
|
| Builder addBuilder(String name, Builder builder, int charOffset) {
|
| if (name == null || name.isEmpty) return null;
|
| - members[name] = builder;
|
| + bool isSetter = builder.isSetter;
|
| + if (isSetter) {
|
| + scopeBuilder.addSetter(name, builder);
|
| + } else {
|
| + scopeBuilder.addMember(name, builder);
|
| + }
|
| if (!name.startsWith("_")) {
|
| - exports[name] = builder;
|
| + if (isSetter) {
|
| + exportScopeBuilder.addSetter(name, builder);
|
| + } else {
|
| + exportScopeBuilder.addMember(name, builder);
|
| + }
|
| }
|
| return builder;
|
| }
|
|
|