Chromium Code Reviews| Index: pkg/fletchc/lib/src/fletch_enqueuer.dart |
| diff --git a/pkg/fletchc/lib/src/fletch_enqueuer.dart b/pkg/fletchc/lib/src/fletch_enqueuer.dart |
| index fc89d20d38c31488806df5a4269794e5a0e80914..76e65fcaaeba6614ef63add6d3b226b5d0db16e8 100644 |
| --- a/pkg/fletchc/lib/src/fletch_enqueuer.dart |
| +++ b/pkg/fletchc/lib/src/fletch_enqueuer.dart |
| @@ -7,23 +7,33 @@ library fletchc.fletch_enqueuer; |
| import 'dart:collection' show |
| Queue; |
| -import 'package:compiler/src/dart2jslib.dart' show |
| +import 'package:compiler/src/common/tasks.dart' show |
| + CompilerTask; |
| + |
| +import 'package:compiler/src/universe/world_impact.dart' show |
| + WorldImpact; |
| + |
| +import 'package:compiler/src/types/types.dart' show |
| + TypeMaskStrategy; |
| + |
| +import 'package:compiler/src/enqueue.dart' show |
| + ResolutionEnqueuer, |
| CodegenEnqueuer, |
| - Compiler, |
| - CompilerTask, |
| - EnqueueTask, |
| - ItemCompilationContextCreator, |
| + TreeShakingEnqueuerStrategy; |
| + |
| +import 'package:compiler/src/compiler.dart' show |
| + Compiler; |
| + |
| +import 'package:compiler/src/enqueue.dart' show |
| QueueFilter, |
| - Registry, |
| - ResolutionEnqueuer, |
| - WorkItem, |
| - WorldImpact; |
| + EnqueueTask, |
| + Enqueuer; |
| + |
| +import 'package:compiler/src/universe/selector.dart' show |
| + Selector; |
| import 'package:compiler/src/universe/universe.dart' show |
| - CallStructure, |
| - Selector, |
| - Universe, |
| - UniverseSelector; |
| + Universe; |
| import 'package:compiler/src/dart_types.dart' show |
| DartType, |
| @@ -40,12 +50,11 @@ import 'package:compiler/src/elements/elements.dart' show |
| Name, |
| TypedElement; |
| -import 'package:compiler/src/resolution/resolution.dart' show |
| +import 'package:compiler/src/resolution/tree_elements.dart' show |
| TreeElements; |
| import 'package:compiler/src/util/util.dart' show |
| - Hashing, |
| - SpannableAssertionFailure; |
| + Hashing; |
| import 'fletch_compiler_implementation.dart' show |
| FletchCompilerImplementation; |
| @@ -58,7 +67,19 @@ import 'dynamic_call_enqueuer.dart' show |
| import 'fletch_registry.dart' show |
| ClosureKind, |
| FletchRegistry, |
| - FletchRegistryImplementation; |
| + FletchRegistry; |
| + |
| +import 'dart:developer'; |
|
ahe
2015/12/01 10:12:13
What is this used for?
sigurdm
2015/12/03 14:48:10
That was stary debugging code - removed
|
| +import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; |
|
ahe
2015/12/01 10:12:13
Please use show, here and on all imports below.
sigurdm
2015/12/03 14:48:10
Done.
|
| + |
| +import 'package:compiler/src/universe/use.dart' show |
| + DynamicUse, |
| + StaticUse; |
| + |
| +import 'package:compiler/src/universe/use.dart'; |
| +import 'package:compiler/src/common/work.dart'; |
| +import 'package:compiler/src/common/resolution.dart'; |
| +import 'package:compiler/src/enqueue.dart'; |
| part 'enqueuer_mixin.dart'; |
| @@ -81,7 +102,9 @@ class FletchEnqueueTask extends CompilerTask implements EnqueueTask { |
| FletchEnqueueTask(FletchCompilerImplementation compiler) |
| : resolution = new ResolutionEnqueuer( |
| - compiler, compiler.backend.createItemCompilationContext), |
| + compiler, compiler.backend.createItemCompilationContext, |
| + compiler.analyzeOnly && compiler.analyzeMain |
| + ? const EnqueuerStrategy() : const TreeShakingEnqueuerStrategy()), |
| codegen = new FletchEnqueuer( |
| compiler, compiler.backend.createItemCompilationContext), |
| super(compiler) { |
| @@ -118,7 +141,7 @@ class FletchEnqueuer extends EnqueuerMixin |
| // TODO(ahe): Get rid of this? |
| var nativeEnqueuer; |
| - final Universe universe = new Universe(); |
| + final Universe universe = new Universe(const TypeMaskStrategy()); |
| final Set<ElementUsage> _enqueuedUsages = new Set<ElementUsage>(); |
| final Map<Element, List<ElementUsage>> _enqueuedUsagesByElement = |
| @@ -157,14 +180,13 @@ class FletchEnqueuer extends EnqueuerMixin |
| void registerInstantiatedType( |
| InterfaceType type, |
| - Registry registry, |
| {bool mirrorUsage: false}) { |
| dynamicCallEnqueuer.registerInstantiatedType(type); |
| } |
| // TODO(ahe): Remove this method. |
| - void registerStaticUse(Element element) { |
| - _enqueueElement(element, null, null); |
| + void registerStaticUse(StaticUse staticUse) { |
|
ahe
2015/12/01 10:12:13
Since I don't think we should be instantiating obj
sigurdm
2015/12/03 14:48:10
Done.
|
| + _enqueueElement(staticUse.element, null, null); |
| } |
| // TODO(ahe): Remove this method. |
| @@ -185,8 +207,7 @@ class FletchEnqueuer extends EnqueuerMixin |
| ElementUsage usage = _pendingEnqueuedUsages.removeFirst(); |
| AstElement element = usage.element; |
| TreeElements treeElements = element.resolvedAst.elements; |
| - FletchRegistry registry = |
| - new FletchRegistryImplementation(compiler, treeElements); |
| + FletchRegistry registry = new FletchRegistry(compiler); |
| Selector selector = usage.selector; |
| if (usage.closureKind != null) { |
| compiler.context.backend.compileClosurizationUsage( |
| @@ -220,22 +241,14 @@ class FletchEnqueuer extends EnqueuerMixin |
| // TODO(ahe): Implement this. |
| } |
| - void registerDynamicInvocation(UniverseSelector selector) { |
| - dynamicCallEnqueuer.enqueueSelector(selector); |
| + void registerDynamicUse(DynamicUse use) { |
|
ahe
2015/12/01 10:12:13
Ditto.
sigurdm
2015/12/03 14:48:10
Done.
|
| + dynamicCallEnqueuer.enqueueSelector(use); |
| } |
| void applyImpact(Element element, WorldImpact worldImpact) { |
| assert(worldImpact == null); |
| } |
| - void registerDynamicGetter(UniverseSelector selector) { |
| - dynamicCallEnqueuer.enqueueSelector(selector); |
| - } |
| - |
| - void registerDynamicSetter(UniverseSelector selector) { |
| - dynamicCallEnqueuer.enqueueSelector(selector); |
| - } |
| - |
| void registerIsCheck(DartType type) { |
| dynamicCallEnqueuer.enqueueTypeTest(type); |
| } |