| Index: pkg/compiler/lib/src/common/registry.dart
|
| diff --git a/pkg/compiler/lib/src/common/registry.dart b/pkg/compiler/lib/src/common/registry.dart
|
| index 08d6081c5d850e8e5c6cad0e8b9b3288e662b6b0..96ee8453d6bd057247cf62e9c6aa29dcd92fba51 100644
|
| --- a/pkg/compiler/lib/src/common/registry.dart
|
| +++ b/pkg/compiler/lib/src/common/registry.dart
|
| @@ -4,10 +4,48 @@
|
|
|
| library dart2js.common.registry;
|
|
|
| +import '../dart_types.dart' show InterfaceType;
|
| import '../elements/elements.dart' show Element;
|
| +import '../enqueue.dart' show Enqueuer;
|
| +import '../universe/use.dart' show DynamicUse, StaticUse;
|
|
|
| -// TODO(johnniwinther): Remove this.
|
| /// Interface for registration of element dependencies.
|
| abstract class Registry {
|
| + // TODO(johnniwinther): Remove this.
|
| void registerDependency(Element element) {}
|
| +
|
| + bool get isForResolution;
|
| +
|
| + void registerDynamicUse(DynamicUse staticUse);
|
| +
|
| + void registerStaticUse(StaticUse staticUse);
|
| +
|
| + void registerInstantiation(InterfaceType type);
|
| +}
|
| +
|
| +// TODO(johnniwinther): Remove this.
|
| +class EagerRegistry extends Registry {
|
| + final String name;
|
| + final Enqueuer world;
|
| +
|
| + EagerRegistry(this.name, this.world);
|
| +
|
| + bool get isForResolution => world.isResolutionQueue;
|
| +
|
| + @override
|
| + void registerDynamicUse(DynamicUse dynamicUse) {
|
| + world.registerDynamicUse(dynamicUse);
|
| + }
|
| +
|
| + @override
|
| + void registerInstantiation(InterfaceType type) {
|
| + world.registerInstantiatedType(type);
|
| + }
|
| +
|
| + @override
|
| + void registerStaticUse(StaticUse staticUse) {
|
| + world.registerStaticUse(staticUse);
|
| + }
|
| +
|
| + String toString() => name;
|
| }
|
|
|