Index: pkg/dartino_compiler/lib/src/dartino_class_builder.dart |
diff --git a/pkg/fletchc/lib/src/fletch_class_builder.dart b/pkg/dartino_compiler/lib/src/dartino_class_builder.dart |
similarity index 78% |
rename from pkg/fletchc/lib/src/fletch_class_builder.dart |
rename to pkg/dartino_compiler/lib/src/dartino_class_builder.dart |
index 94fda18551a785b08aec879b2c0e407894635908..59c098c9341c750ac35bb34e4dafffbfc87e7b1d 100644 |
--- a/pkg/fletchc/lib/src/fletch_class_builder.dart |
+++ b/pkg/dartino_compiler/lib/src/dartino_class_builder.dart |
@@ -2,28 +2,28 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE.md file. |
-library fletchc.fletch_class_builder; |
+library dartino_compiler.dartino_class_builder; |
import 'package:compiler/src/dart_types.dart'; |
import 'package:compiler/src/elements/elements.dart'; |
import 'package:compiler/src/universe/selector.dart'; |
import 'package:persistent/persistent.dart'; |
-import 'fletch_function_builder.dart'; |
-import 'fletch_context.dart'; |
-import 'fletch_backend.dart'; |
+import 'dartino_function_builder.dart'; |
+import 'dartino_context.dart'; |
+import 'dartino_backend.dart'; |
-import '../fletch_system.dart'; |
+import '../dartino_system.dart'; |
import '../vm_commands.dart'; |
// TODO(ahe): Remove this import. |
-import '../incremental/fletchc_incremental.dart' show |
+import '../incremental/dartino_compiler_incremental.dart' show |
IncrementalCompilationFailed; |
-abstract class FletchClassBuilder { |
+abstract class DartinoClassBuilder { |
int get classId; |
ClassElement get element; |
- FletchClassBuilder get superclass; |
+ DartinoClassBuilder get superclass; |
int get fields; |
/** |
@@ -36,8 +36,8 @@ abstract class FletchClassBuilder { |
bool get hasSuperClass => superclass != null; |
- void addToMethodTable(int selector, FletchFunctionBase functionBase); |
- void removeFromMethodTable(FletchFunctionBase function); |
+ void addToMethodTable(int selector, DartinoFunctionBase functionBase); |
+ void removeFromMethodTable(DartinoFunctionBase function); |
void addField(FieldElement field); |
void removeField(FieldElement field); |
@@ -45,14 +45,14 @@ abstract class FletchClassBuilder { |
// Add a selector for is-tests. The selector is only to be hit with the |
// InvokeTest bytecode, as the function is not guraranteed to be valid. |
void addIsSelector(int selector); |
- void createIsFunctionEntry(FletchBackend backend, int arity); |
- void updateImplicitAccessors(FletchBackend backend); |
+ void createIsFunctionEntry(DartinoBackend backend, int arity); |
+ void updateImplicitAccessors(DartinoBackend backend); |
- FletchClass finalizeClass( |
- FletchContext context, |
+ DartinoClass finalizeClass( |
+ DartinoContext context, |
List<VmCommand> commands); |
- // The method table for a class is a mapping from Fletch's integer |
+ // The method table for a class is a mapping from Dartino's integer |
// selectors to method ids. It contains all methods defined for a |
// class including the implicit accessors. The returned map is not sorted. |
// TODO(ajohnsen): Remove once not used by feature_test anymore. |
@@ -76,10 +76,10 @@ void forEachField(ClassElement c, void action(FieldElement field)) { |
} |
} |
-class FletchNewClassBuilder extends FletchClassBuilder { |
+class DartinoNewClassBuilder extends DartinoClassBuilder { |
final int classId; |
final ClassElement element; |
- final FletchClassBuilder superclass; |
+ final DartinoClassBuilder superclass; |
final bool isBuiltin; |
// The extra fields are synthetic fields not represented in any Dart source |
@@ -88,9 +88,9 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
final int extraFields; |
final Map<int, int> _implicitAccessorTable = <int, int>{}; |
- final Map<int, FletchFunctionBase> _methodTable = <int, FletchFunctionBase>{}; |
+ final Map<int, DartinoFunctionBase> _methodTable = <int, DartinoFunctionBase>{}; |
- FletchNewClassBuilder( |
+ DartinoNewClassBuilder( |
this.classId, |
this.element, |
this.superclass, |
@@ -107,7 +107,7 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
return count; |
} |
- void addToMethodTable(int selector, FletchFunctionBase functionBase) { |
+ void addToMethodTable(int selector, DartinoFunctionBase functionBase) { |
_methodTable[selector] = functionBase; |
} |
@@ -122,7 +122,7 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
"Can't remove a field ($field) from a new class ($element)"); |
} |
- void removeFromMethodTable(FletchFunctionBase function) { |
+ void removeFromMethodTable(DartinoFunctionBase function) { |
throw new StateError("Methods should not be removed from a new class."); |
} |
@@ -137,7 +137,7 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
..addAll(_methodTable.keys); |
for (int selector in selectors) { |
if (_methodTable.containsKey(selector)) { |
- FletchFunctionBase function = _methodTable[selector]; |
+ DartinoFunctionBase function = _methodTable[selector]; |
int functionId = function == null ? 0 : function.functionId; |
result = result.insert(selector, functionId); |
} else { |
@@ -147,7 +147,7 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
return result; |
} |
- void updateImplicitAccessors(FletchBackend backend) { |
+ void updateImplicitAccessors(DartinoBackend backend) { |
_implicitAccessorTable.clear(); |
// If we don't have an element (stub class), we don't have anything to |
// generate accessors for. |
@@ -157,12 +157,12 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
int fieldIndex = superclassFields; |
element.implementation.forEachInstanceField((enclosing, field) { |
var getter = new Selector.getter(field.memberName); |
- int getterSelector = backend.context.toFletchSelector(getter); |
+ int getterSelector = backend.context.toDartinoSelector(getter); |
_implicitAccessorTable[getterSelector] = backend.makeGetter(fieldIndex); |
if (!field.isFinal) { |
var setter = new Selector.setter(new Name(field.name, field.library)); |
- var setterSelector = backend.context.toFletchSelector(setter); |
+ var setterSelector = backend.context.toDartinoSelector(setter); |
_implicitAccessorTable[setterSelector] = backend.makeSetter(fieldIndex); |
} |
@@ -170,17 +170,17 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
}); |
} |
- void createIsFunctionEntry(FletchBackend backend, int arity) { |
- int fletchSelector = backend.context.toFletchIsSelector( |
+ void createIsFunctionEntry(DartinoBackend backend, int arity) { |
+ int dartinoSelector = backend.context.toDartinoIsSelector( |
backend.compiler.coreClasses.functionClass); |
- addIsSelector(fletchSelector); |
- fletchSelector = backend.context.toFletchIsSelector( |
+ addIsSelector(dartinoSelector); |
+ dartinoSelector = backend.context.toDartinoIsSelector( |
backend.compiler.coreClasses.functionClass, arity); |
- addIsSelector(fletchSelector); |
+ addIsSelector(dartinoSelector); |
} |
- FletchClass finalizeClass( |
- FletchContext context, |
+ DartinoClass finalizeClass( |
+ DartinoContext context, |
List<VmCommand> commands) { |
if (isBuiltin) { |
int nameId = context.getSymbolId(element.name); |
@@ -206,9 +206,9 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
fieldsList[index++] = field; |
}); |
- return new FletchClass( |
+ return new DartinoClass( |
classId, |
- // TODO(ajohnsen): Take name in FletchClassBuilder constructor. |
+ // TODO(ajohnsen): Take name in DartinoClassBuilder constructor. |
element == null ? '<internal>' : element.name, |
element, |
superclass == null ? -1 : superclass.classId, |
@@ -217,16 +217,16 @@ class FletchNewClassBuilder extends FletchClassBuilder { |
fieldsList); |
} |
- String toString() => "FletchClassBuilder($element, $classId)"; |
+ String toString() => "DartinoClassBuilder($element, $classId)"; |
} |
-class FletchPatchClassBuilder extends FletchClassBuilder { |
- final FletchClass klass; |
- final FletchClassBuilder superclass; |
+class DartinoPatchClassBuilder extends DartinoClassBuilder { |
+ final DartinoClass klass; |
+ final DartinoClassBuilder superclass; |
final Map<int, int> _implicitAccessorTable = <int, int>{}; |
- final Map<int, FletchFunctionBase> _newMethods = <int, FletchFunctionBase>{}; |
- final Set<FletchFunctionBase> _removedMethods = new Set<FletchFunctionBase>(); |
+ final Map<int, DartinoFunctionBase> _newMethods = <int, DartinoFunctionBase>{}; |
+ final Set<DartinoFunctionBase> _removedMethods = new Set<DartinoFunctionBase>(); |
final Set<FieldElement> _removedFields = new Set<FieldElement>(); |
final List<int> _removedAccessors = <int>[]; |
bool _fieldsChanged = false; |
@@ -236,17 +236,17 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
int extraFields = 0; |
// TODO(ajohnsen): Can the element change? |
- FletchPatchClassBuilder(this.klass, this.superclass); |
+ DartinoPatchClassBuilder(this.klass, this.superclass); |
int get classId => klass.classId; |
ClassElement get element => klass.element; |
int get fields => klass.fields.length; |
- void addToMethodTable(int selector, FletchFunctionBase functionBase) { |
+ void addToMethodTable(int selector, DartinoFunctionBase functionBase) { |
_newMethods[selector] = functionBase; |
} |
- void removeFromMethodTable(FletchFunctionBase function) { |
+ void removeFromMethodTable(DartinoFunctionBase function) { |
assert(function != null); |
_removedMethods.add(function); |
} |
@@ -266,11 +266,11 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
// TODO(ajohnsen): Implement. |
} |
- void createIsFunctionEntry(FletchBackend backend, int arity) { |
+ void createIsFunctionEntry(DartinoBackend backend, int arity) { |
// TODO(ajohnsen): Implement. |
} |
- void updateImplicitAccessors(FletchBackend backend) { |
+ void updateImplicitAccessors(DartinoBackend backend) { |
// If we don't have an element (stub class), we don't have anything to |
// generate accessors for. |
if (element == null) return; |
@@ -279,12 +279,12 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
int fieldIndex = superclassFields + extraFields; |
element.implementation.forEachInstanceField((enclosing, field) { |
var getter = new Selector.getter(new Name(field.name, field.library)); |
- int getterSelector = backend.context.toFletchSelector(getter); |
+ int getterSelector = backend.context.toDartinoSelector(getter); |
_implicitAccessorTable[getterSelector] = backend.makeGetter(fieldIndex); |
if (!field.isFinal) { |
var setter = new Selector.setter(new Name(field.name, field.library)); |
- var setterSelector = backend.context.toFletchSelector(setter); |
+ var setterSelector = backend.context.toDartinoSelector(setter); |
_implicitAccessorTable[setterSelector] = backend.makeSetter(fieldIndex); |
} |
@@ -294,13 +294,13 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
for (FieldElement field in _removedFields) { |
Selector getter = |
new Selector.getter(new Name(field.name, field.library)); |
- int getterSelector = backend.context.toFletchSelector(getter); |
+ int getterSelector = backend.context.toDartinoSelector(getter); |
_removedAccessors.add(getterSelector); |
if (!field.isFinal) { |
Selector setter = |
new Selector.setter(new Name(field.name, field.library)); |
- int setterSelector = backend.context.toFletchSelector(setter); |
+ int setterSelector = backend.context.toDartinoSelector(setter); |
_removedAccessors.add(setterSelector); |
} |
} |
@@ -313,7 +313,7 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
methodTable = methodTable.delete(selector); |
} |
- for (FletchFunctionBase function in _removedMethods) { |
+ for (DartinoFunctionBase function in _removedMethods) { |
methodTable.forEachKeyValue((int selector, int functionId) { |
if (functionId == function.functionId) { |
methodTable = methodTable.delete(selector); |
@@ -326,15 +326,15 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
methodTable = methodTable.insert(selector, functionId); |
}); |
- _newMethods.forEach((int selector, FletchFunctionBase function) { |
+ _newMethods.forEach((int selector, DartinoFunctionBase function) { |
methodTable = methodTable.insert(selector, function.functionId); |
}); |
return methodTable; |
} |
- FletchClass finalizeClass( |
- FletchContext context, |
+ DartinoClass finalizeClass( |
+ DartinoContext context, |
List<VmCommand> commands) { |
// TODO(ajohnsen): We need to figure out when to do this. It should be after |
// we have updated class fields, but before we hit 'computeSystem'. |
@@ -353,9 +353,9 @@ class FletchPatchClassBuilder extends FletchClassBuilder { |
List<FieldElement> fieldsList = <FieldElement>[]; |
forEachField(element, (field) { fieldsList.add(field); }); |
- return new FletchClass( |
+ return new DartinoClass( |
classId, |
- // TODO(ajohnsen): Take name in FletchClassBuilder constructor. |
+ // TODO(ajohnsen): Take name in DartinoClassBuilder constructor. |
element == null ? '<internal>' : element.name, |
element, |
superclass == null ? -1 : superclass.classId, |