| Index: pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
|
| index 34a72fea7d01a7c61b90ce1b3aa8a50e8a1f30dc..1280f391b9fb2a4c49b7c155e87bdc490b049132 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
|
| @@ -42,8 +42,10 @@ import 'kernel_builder.dart'
|
| KernelProcedureBuilder,
|
| KernelTypeBuilder,
|
| LibraryBuilder,
|
| + MemberBuilder,
|
| MetadataBuilder,
|
| ProcedureBuilder,
|
| + Scope,
|
| TypeVariableBuilder,
|
| computeDefaultTypeArguments;
|
|
|
| @@ -58,11 +60,12 @@ abstract class KernelClassBuilder
|
| List<TypeVariableBuilder> typeVariables,
|
| KernelTypeBuilder supertype,
|
| List<KernelTypeBuilder> interfaces,
|
| - Map<String, Builder> members,
|
| + Scope scope,
|
| + Scope constructors,
|
| LibraryBuilder parent,
|
| int charOffset)
|
| : super(metadata, modifiers, name, typeVariables, supertype, interfaces,
|
| - members, parent, charOffset);
|
| + scope, constructors, parent, charOffset);
|
|
|
| Class get cls;
|
|
|
| @@ -110,10 +113,11 @@ abstract class KernelClassBuilder
|
| int resolveConstructors(KernelLibraryBuilder library) {
|
| int count = super.resolveConstructors(library);
|
| if (count != 0) {
|
| + Map<String, MemberBuilder> constructors = this.constructors.local;
|
| // Copy keys to avoid concurrent modification error.
|
| - List<String> names = members.keys.toList();
|
| + List<String> names = constructors.keys.toList();
|
| for (String name in names) {
|
| - Builder builder = members[name];
|
| + Builder builder = constructors[name];
|
| if (builder is KernelProcedureBuilder && builder.isFactory) {
|
| // Compute the immediate redirection target, not the effective.
|
| ConstructorReferenceBuilder redirectionTarget =
|
| @@ -158,7 +162,7 @@ abstract class KernelClassBuilder
|
| //
|
| // TODO(ahe): Generate the correct factory body instead.
|
| DillMemberBuilder constructorsField =
|
| - members.putIfAbsent("_redirecting#", () {
|
| + scope.local.putIfAbsent("_redirecting#", () {
|
| ListLiteral literal = new ListLiteral(<Expression>[]);
|
| Name name = new Name("_redirecting#", library.library);
|
| Field field = new Field(name,
|
|
|