Index: pkg/fletchc/lib/src/constructor_codegen.dart |
diff --git a/pkg/fletchc/lib/src/constructor_codegen.dart b/pkg/fletchc/lib/src/constructor_codegen.dart |
index afdd0670cd0165a64dcfe7a9778e137a879473e1..ce4b9295d4a4f0c82c0d47687d94dc7fd15d05e2 100644 |
--- a/pkg/fletchc/lib/src/constructor_codegen.dart |
+++ b/pkg/fletchc/lib/src/constructor_codegen.dart |
@@ -23,17 +23,17 @@ import 'fletch_context.dart'; |
import 'fletch_backend.dart'; |
import 'fletch_constants.dart' show |
- CompiledFunctionConstant, |
+ FletchFunctionBuilderConstant, |
FletchClassConstant; |
import '../bytecodes.dart' show |
Bytecode; |
-import 'compiled_function.dart' show |
- CompiledFunction; |
+import 'fletch_function_builder.dart' show |
+ FletchFunctionBuilder; |
-import 'compiled_class.dart' show |
- CompiledClass; |
+import 'fletch_class_builder.dart' show |
+ FletchClassBuilder; |
import 'closure_environment.dart'; |
@@ -42,7 +42,7 @@ import 'lazy_field_initializer_codegen.dart'; |
import 'codegen_visitor.dart'; |
class ConstructorCodegen extends CodegenVisitor { |
- final CompiledClass compiledClass; |
+ final FletchClassBuilder classBuilder; |
final Map<FieldElement, LocalValue> fieldScope = <FieldElement, LocalValue>{}; |
@@ -50,19 +50,19 @@ class ConstructorCodegen extends CodegenVisitor { |
TreeElements initializerElements; |
- ConstructorCodegen(CompiledFunction compiledFunction, |
+ ConstructorCodegen(FletchFunctionBuilder functionBuilder, |
FletchContext context, |
TreeElements elements, |
Registry registry, |
ClosureEnvironment closureEnvironment, |
ConstructorElement constructor, |
- this.compiledClass) |
- : super(compiledFunction, context, elements, registry, |
+ this.classBuilder) |
+ : super(functionBuilder, context, elements, registry, |
closureEnvironment, constructor); |
ConstructorElement get constructor => element; |
- BytecodeBuilder get builder => compiledFunction.builder; |
+ BytecodeBuilder get builder => functionBuilder.builder; |
TreeElements get elements { |
if (initializerElements != null) return initializerElements; |
@@ -71,7 +71,7 @@ class ConstructorCodegen extends CodegenVisitor { |
void compile() { |
// Push all initial field values (including super-classes). |
- pushInitialFieldValues(compiledClass); |
+ pushInitialFieldValues(classBuilder); |
// The stack is now: |
// Value for field-0 |
// ... |
@@ -88,7 +88,7 @@ class ConstructorCodegen extends CodegenVisitor { |
} |
LazyFieldInitializerCodegen lazyFieldInitializerCodegenFor( |
- CompiledFunction function, |
+ FletchFunctionBuilder function, |
FieldElement field) { |
TreeElements elements = field.resolvedAst.elements; |
return new LazyFieldInitializerCodegen( |
@@ -104,7 +104,7 @@ class ConstructorCodegen extends CodegenVisitor { |
// TODO(ajohnsen): Let allocate take an offset to the field stack, so we |
// don't have to copy all the fields? |
// Copy all the fields to the end of the stack. |
- int fields = compiledClass.fields; |
+ int fields = classBuilder.fields; |
for (int i = 0; i < fields; i++) { |
builder.loadSlot(i); |
} |
@@ -119,8 +119,8 @@ class ConstructorCodegen extends CodegenVisitor { |
// Value for field-n |
// Create the actual instance. |
- int classConstant = compiledFunction.allocateConstantFromClass( |
- compiledClass.id); |
+ int classConstant = functionBuilder.allocateConstantFromClass( |
+ classBuilder.id); |
// TODO(ajohnsen): Set immutable for all-final classes. |
builder.allocate(classConstant, fields, immutable: element.isConst); |
@@ -331,7 +331,7 @@ class ConstructorCodegen extends CodegenVisitor { |
registerStaticInvocation(constructor.declaration); |
int methodId = context.backend.functionMethodId(constructor); |
- int constructorId = compiledFunction.allocateConstantFromFunction(methodId); |
+ int constructorId = functionBuilder.allocateConstantFromFunction(methodId); |
FunctionSignature signature = constructor.functionSignature; |
@@ -346,12 +346,12 @@ class ConstructorCodegen extends CodegenVisitor { |
..pop(); |
} |
- void pushInitialFieldValues(CompiledClass compiledClass) { |
- if (compiledClass.hasSuperClass) { |
- pushInitialFieldValues(compiledClass.superclass); |
+ void pushInitialFieldValues(FletchClassBuilder classBuilder) { |
+ if (classBuilder.hasSuperClass) { |
+ pushInitialFieldValues(classBuilder.superclass); |
} |
- int fieldIndex = compiledClass.superclassFields; |
- ClassElement classElement = compiledClass.element.implementation; |
+ int fieldIndex = classBuilder.superclassFields; |
+ ClassElement classElement = classBuilder.element.implementation; |
classElement.forEachInstanceField((_, FieldElement field) { |
fieldScope[field] = new UnboxedLocalValue(fieldIndex++, field); |
Expression initializer = field.initializer; |
@@ -359,10 +359,10 @@ class ConstructorCodegen extends CodegenVisitor { |
builder.loadLiteralNull(); |
} else { |
// Create a LazyFieldInitializerCodegen for compiling the initializer. |
- // Note that we reuse the compiledFunction, to inline it into the |
+ // Note that we reuse the functionBuilder, to inline it into the |
// constructor. |
LazyFieldInitializerCodegen codegen = |
- lazyFieldInitializerCodegenFor(compiledFunction, field); |
+ lazyFieldInitializerCodegenFor(functionBuilder, field); |
// We only want the value of the actual initializer, not the usual |
// 'body'. |