| 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 209699dac7cb2b7953b00e6934b47942abc5a1a6..b81da23bd022543a3d67082993421e8a86c402e9 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;
|
|
|
| @@ -111,10 +114,11 @@ abstract class KernelClassBuilder
|
| int resolveConstructors(LibraryBuilder 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 =
|
| @@ -159,7 +163,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,
|
|
|