| Index: pkg/fletchc/lib/src/codegen_visitor.dart
|
| diff --git a/pkg/fletchc/lib/src/codegen_visitor.dart b/pkg/fletchc/lib/src/codegen_visitor.dart
|
| index 3dfd86273921363f68e28834cc786853b8b02aa7..6426a4d9daa285c1345e99b3541b79062df43595 100644
|
| --- a/pkg/fletchc/lib/src/codegen_visitor.dart
|
| +++ b/pkg/fletchc/lib/src/codegen_visitor.dart
|
| @@ -30,8 +30,6 @@ import 'package:compiler/src/common/names.dart' show
|
| Names,
|
| Selectors;
|
|
|
| -import 'package:compiler/src/universe/use.dart' show DynamicUse, StaticUse;
|
| -
|
| import 'package:compiler/src/elements/elements.dart';
|
| import 'package:compiler/src/tree/tree.dart';
|
| import 'package:compiler/src/universe/call_structure.dart' show
|
| @@ -373,9 +371,9 @@ abstract class CodegenVisitor
|
| scope.remove(local);
|
| }
|
|
|
| - void registerDynamicUse(Selector selector);
|
| + void registerDynamicSelector(Selector selector);
|
|
|
| - void registerStaticUse(StaticUse use);
|
| + void registerStaticInvocation(FunctionElement function);
|
|
|
| void registerInstantiatedClass(ClassElement klass);
|
|
|
| @@ -391,7 +389,7 @@ abstract class CodegenVisitor
|
| int compileLazyFieldInitializer(FieldElement field);
|
|
|
| void invokeMethod(Node node, Selector selector) {
|
| - registerDynamicUse(selector);
|
| + registerDynamicSelector(selector);
|
| String symbol = context.getSymbolFromSelector(selector);
|
| int id = context.getSymbolId(symbol);
|
| int arity = selector.argumentCount;
|
| @@ -400,7 +398,7 @@ abstract class CodegenVisitor
|
| }
|
|
|
| void invokeGetter(Node node, Name name) {
|
| - registerDynamicUse(new Selector.getter(name));
|
| + registerDynamicSelector(new Selector.getter(name));
|
| String symbol = context.mangleName(name);
|
| int id = context.getSymbolId(symbol);
|
| int fletchSelector = FletchSelector.encodeGetter(id);
|
| @@ -408,7 +406,7 @@ abstract class CodegenVisitor
|
| }
|
|
|
| void invokeSetter(Node node, Name name) {
|
| - registerDynamicUse(new Selector.setter(name));
|
| + registerDynamicSelector(new Selector.setter(name));
|
| String symbol = context.mangleName(name);
|
| int id = context.getSymbolId(symbol);
|
| int fletchSelector = FletchSelector.encodeSetter(id);
|
| @@ -451,8 +449,7 @@ abstract class CodegenVisitor
|
| }
|
|
|
| FletchFunctionBase requireFunction(FunctionElement element) {
|
| - // TODO(johnniwinther): More precise use.
|
| - registerStaticUse(new StaticUse.foreignUse(element));
|
| + registerStaticInvocation(element);
|
| return context.backend.getFunctionForElement(element);
|
| }
|
|
|
| @@ -460,7 +457,7 @@ abstract class CodegenVisitor
|
| ConstructorElement constructor) {
|
| assert(constructor.isGenerativeConstructor);
|
| registerInstantiatedClass(constructor.enclosingClass);
|
| - registerStaticUse(new StaticUse.foreignUse(constructor));
|
| + registerStaticInvocation(constructor);
|
| return context.backend.getConstructorInitializerFunction(constructor);
|
| }
|
|
|
| @@ -1078,7 +1075,7 @@ abstract class CodegenVisitor
|
| }
|
|
|
| void doSuperCall(Node node, FunctionElement function) {
|
| - registerStaticUse(new StaticUse.foreignUse(function));
|
| + registerStaticInvocation(function);
|
| int arity = function.functionSignature.parameterCount + 1;
|
| FletchFunctionBase base = requireFunction(function);
|
| int constId = functionBuilder.allocateConstantFromFunction(base.functionId);
|
| @@ -1508,8 +1505,7 @@ abstract class CodegenVisitor
|
| applyVisitState();
|
| }
|
|
|
| - void doStaticFieldSet(
|
| - FieldElement field) {
|
| + void doStaticFieldSet(FieldElement field) {
|
| int index = context.getStaticFieldIndex(field, element);
|
| assembler.storeStatic(index);
|
| }
|
| @@ -3200,12 +3196,12 @@ abstract class FletchRegistryMixin {
|
| FletchRegistry get registry;
|
| FletchContext get context;
|
|
|
| - void registerDynamicUse(Selector selector) {
|
| - registry.registerDynamicUse(selector);
|
| + void registerDynamicSelector(Selector selector) {
|
| + registry.registerDynamicSelector(selector);
|
| }
|
|
|
| - void registerStaticUse(StaticUse staticUse) {
|
| - registry.registerStaticUse(staticUse);
|
| + void registerStaticInvocation(FunctionElement function) {
|
| + registry.registerStaticInvocation(function);
|
| }
|
|
|
| void registerInstantiatedClass(ClassElement klass) {
|
| @@ -3226,7 +3222,7 @@ abstract class FletchRegistryMixin {
|
| // currently needed to ensure that local function expression closures are
|
| // compiled correctly. For example, `[() {}].last()`, notice that `last`
|
| // is a getter. This happens for both named and unnamed.
|
| - registerStaticUse(new StaticUse.foreignUse(element));
|
| + registerStaticInvocation(element);
|
| }
|
| registry.registerClosurization(element, kind);
|
| }
|
|
|