Index: pkg/compiler/lib/src/compiler.dart |
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart |
index c7d00d86ee179ed61a4f472d2254a4c2290556e5..4b90f49a60df6b4ac33d555860c3a7adba6fd07d 100644 |
--- a/pkg/compiler/lib/src/compiler.dart |
+++ b/pkg/compiler/lib/src/compiler.dart |
@@ -77,7 +77,7 @@ import 'universe/universe.dart' show Universe; |
import 'universe/use.dart' show StaticUse; |
import 'universe/world_impact.dart' show ImpactStrategy, WorldImpact; |
import 'util/util.dart' show Link, Setlet; |
-import 'world.dart' show World; |
+import 'world.dart' show ClosedWorld, ClosedWorldRefiner, World; |
typedef Backend MakeBackendFuncion(Compiler compiler); |
@@ -88,7 +88,7 @@ abstract class Compiler implements LibraryLoaderListener { |
Measurer get measurer; |
final IdGenerator idGenerator = new IdGenerator(); |
- World world; |
+ World _world; |
Types types; |
_CompilerCoreTypes _coreTypes; |
CompilerDiagnosticReporter _reporter; |
@@ -225,7 +225,7 @@ abstract class Compiler implements LibraryLoaderListener { |
this.userOutputProvider = outputProvider == null |
? const NullCompilerOutput() |
: outputProvider { |
- world = new World(this); |
+ _world = new World(this); |
if (makeReporter != null) { |
_reporter = makeReporter(this, options); |
} else { |
@@ -302,6 +302,16 @@ abstract class Compiler implements LibraryLoaderListener { |
tasks.addAll(backend.tasks); |
} |
+ /// The world currently being computed by resolution. This forms a basis for |
+ /// the [inferenceWorld] and later the [closedWorld]. |
+ World get openWorld => _world; |
+ |
+ /// The closed world after resolution but currently refined by inference. |
+ ClosedWorldRefiner get inferenceWorld => _world; |
+ |
+ /// The closed world after resolution and inference. |
+ ClosedWorld get closedWorld => _world; |
+ |
/// Creates the scanner task. |
/// |
/// Override this to mock the scanner for testing. |
@@ -314,7 +324,7 @@ abstract class Compiler implements LibraryLoaderListener { |
/// Override this to mock the resolver for testing. |
ResolverTask createResolverTask() { |
return new ResolverTask( |
- resolution, backend.constantCompilerTask, world, measurer); |
+ resolution, backend.constantCompilerTask, openWorld, measurer); |
} |
Universe get resolverWorld => enqueuer.resolution.universe; |
@@ -709,7 +719,7 @@ abstract class Compiler implements LibraryLoaderListener { |
assert(mainFunction != null); |
phase = PHASE_DONE_RESOLVING; |
- world.populate(); |
+ openWorld.populate(); |
// Compute whole-program-knowledge that the backend needs. (This might |
// require the information computed in [world.populate].) |
backend.onResolutionComplete(); |
@@ -1982,7 +1992,7 @@ class _CompilerResolution implements Resolution { |
@override |
void registerClass(ClassElement cls) { |
- compiler.world.registerClass(cls); |
+ compiler.openWorld.registerClass(cls); |
} |
@override |