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