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, |