Rename ClosedWorld to JClosedWorld and merge it with ClosedWorldRefiner
Change-Id: I858695194fe4b0dffb7c85a93e2d6bcc04dd6229
Reviewed-on: https://dart-review.googlesource.com/58022
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
diff --git a/pkg/compiler/lib/src/backend_strategy.dart b/pkg/compiler/lib/src/backend_strategy.dart
index d47d1c9..0e29978 100644
--- a/pkg/compiler/lib/src/backend_strategy.dart
+++ b/pkg/compiler/lib/src/backend_strategy.dart
@@ -22,8 +22,8 @@
/// Strategy pattern that defines the element model used in type inference
/// and code generation.
abstract class BackendStrategy {
- /// Create the [ClosedWorldRefiner] for [closedWorld].
- ClosedWorldRefiner createClosedWorldRefiner(KClosedWorld closedWorld);
+ /// Create the [JClosedWorld] from [closedWorld].
+ JClosedWorld createJClosedWorld(KClosedWorld closedWorld);
/// Converts [data] to use backend entities instead of frontend entities.
OutputUnitData convertOutputUnitData(OutputUnitData data);
@@ -38,11 +38,11 @@
/// Creates the [CodegenWorldBuilder] used by the codegen enqueuer.
CodegenWorldBuilder createCodegenWorldBuilder(
NativeBasicData nativeBasicData,
- ClosedWorld closedWorld,
+ JClosedWorld closedWorld,
SelectorConstraintsStrategy selectorConstraintsStrategy);
/// Creates the [WorkItemBuilder] used by the codegen enqueuer.
- WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld);
+ WorkItemBuilder createCodegenWorkItemBuilder(JClosedWorld closedWorld);
/// Creates the [SsaBuilder] used for the element model.
SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend,
@@ -55,6 +55,6 @@
SourceSpan spanFromSpannable(Spannable spannable, Entity currentElement);
/// Creates the [TypesInferrer] used by this strategy.
- TypesInferrer createTypesInferrer(ClosedWorldRefiner closedWorldRefiner,
+ TypesInferrer createTypesInferrer(JClosedWorld closedWorld,
{bool disableTypeInference: false});
}
diff --git a/pkg/compiler/lib/src/closure.dart b/pkg/compiler/lib/src/closure.dart
index a4ad683..18cfdc3 100644
--- a/pkg/compiler/lib/src/closure.dart
+++ b/pkg/compiler/lib/src/closure.dart
@@ -6,17 +6,12 @@
import 'common.dart';
import 'elements/entities.dart';
import 'elements/types.dart';
-import 'world.dart' show ClosedWorldRefiner;
// TODO(johnniwinther,efortuna): Split [ClosureConversionTask] from
// [ClosureDataLookup].
abstract class ClosureConversionTask<T> extends CompilerTask
implements ClosureDataLookup<T> {
ClosureConversionTask(Measurer measurer) : super(measurer);
-
- //void analyzeClosures();
- void convertClosures(Iterable<MemberEntity> processedEntities,
- ClosedWorldRefiner closedWorldRefiner);
}
/// Class that provides information for how closures are rewritten/represented
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 2888f3c..4a8bc14 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -43,7 +43,7 @@
import 'universe/use.dart' show StaticUse, TypeUse;
import 'universe/world_impact.dart'
show ImpactStrategy, WorldImpact, WorldImpactBuilderImpl;
-import 'world.dart' show ClosedWorld, ClosedWorldRefiner, KClosedWorld;
+import 'world.dart' show JClosedWorld, KClosedWorld;
typedef CompilerDiagnosticReporter MakeReporterFunction(
Compiler compiler, CompilerOptions options);
@@ -79,7 +79,7 @@
Uri mainLibraryUri;
- ClosedWorld backendClosedWorldForTesting;
+ JClosedWorld backendClosedWorldForTesting;
DiagnosticReporter get reporter => _reporter;
Map<Entity, WorldImpact> get impactCache => _impactCache;
@@ -371,15 +371,13 @@
if (options.analyzeOnly) return;
assert(mainFunction != null);
- ClosedWorldRefiner closedWorldRefiner = closeResolution(mainFunction);
- ClosedWorld closedWorld = closedWorldRefiner.closedWorld;
+ JClosedWorld closedWorld = closeResolution(mainFunction);
backendClosedWorldForTesting = closedWorld;
mainFunction = closedWorld.elementEnvironment.mainFunction;
reporter.log('Inferring types...');
- globalInference.runGlobalTypeInference(
- mainFunction, closedWorld, closedWorldRefiner);
- closedWorldRefiner.computeSideEffects();
+ globalInference.runGlobalTypeInference(mainFunction, closedWorld);
+ closedWorld.computeSideEffects();
if (stopAfterTypeInference) return;
@@ -409,7 +407,7 @@
checkQueues(resolutionEnqueuer, codegenEnqueuer);
});
- Enqueuer startCodegen(ClosedWorld closedWorld) {
+ Enqueuer startCodegen(JClosedWorld closedWorld) {
Enqueuer codegenEnqueuer = enqueuer.createCodegenEnqueuer(closedWorld);
_codegenWorldBuilder = codegenEnqueuer.worldBuilder;
codegenEnqueuer.applyImpact(backend.onCodegenStart(
@@ -418,23 +416,19 @@
}
/// Perform the steps needed to fully end the resolution phase.
- ClosedWorldRefiner closeResolution(FunctionEntity mainFunction) {
+ JClosedWorld closeResolution(FunctionEntity mainFunction) {
phase = PHASE_DONE_RESOLVING;
KClosedWorld closedWorld = resolutionWorldBuilder.closeWorld();
OutputUnitData result = deferredLoadTask.run(mainFunction, closedWorld);
- ClosedWorldRefiner closedWorldRefiner =
- backendStrategy.createClosedWorldRefiner(closedWorld);
+ JClosedWorld closedWorldRefiner =
+ backendStrategy.createJClosedWorld(closedWorld);
// Compute whole-program-knowledge that the backend needs. (This might
// require the information computed in [world.closeWorld].)
backend.onResolutionClosedWorld(closedWorldRefiner);
backend.onDeferredLoadComplete(result);
- // TODO(johnniwinther): Move this after rti computation but before
- // reflection members computation, and (re-)close the world afterwards.
- backendStrategy.closureDataLookup.convertClosures(
- enqueuer.resolution.processedEntities, closedWorldRefiner);
return closedWorldRefiner;
}
diff --git a/pkg/compiler/lib/src/dump_info.dart b/pkg/compiler/lib/src/dump_info.dart
index e0b8077..15950a1 100644
--- a/pkg/compiler/lib/src/dump_info.dart
+++ b/pkg/compiler/lib/src/dump_info.dart
@@ -26,11 +26,11 @@
import 'universe/world_builder.dart' show CodegenWorldBuilder;
import 'universe/world_impact.dart'
show ImpactUseCase, WorldImpact, WorldImpactVisitorImpl;
-import 'world.dart' show ClosedWorld;
+import 'world.dart' show JClosedWorld;
class ElementInfoCollector {
final Compiler compiler;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
ElementEnvironment get environment => closedWorld.elementEnvironment;
CodegenWorldBuilder get codegenWorldBuilder => compiler.codegenWorldBuilder;
@@ -455,7 +455,7 @@
/// Returns an iterable of [Selection]s that are used by [entity]. Each
/// [Selection] contains an entity that is used and the selector that
/// selected the entity.
- Iterable<Selection> getRetaining(Entity entity, ClosedWorld closedWorld) {
+ Iterable<Selection> getRetaining(Entity entity, JClosedWorld closedWorld) {
WorldImpact impact = impacts[entity];
if (impact == null) return const <Selection>[];
@@ -540,7 +540,7 @@
return sb.toString();
}
- void dumpInfo(ClosedWorld closedWorld) {
+ void dumpInfo(JClosedWorld closedWorld) {
measure(() {
infoCollector = new ElementInfoCollector(compiler, closedWorld)..run();
StringBuffer jsonBuffer = new StringBuffer();
@@ -554,7 +554,7 @@
});
}
- void dumpInfoJson(StringSink buffer, ClosedWorld closedWorld) {
+ void dumpInfoJson(StringSink buffer, JClosedWorld closedWorld) {
JsonEncoder encoder = const JsonEncoder.withIndent(' ');
Stopwatch stopwatch = new Stopwatch();
stopwatch.start();
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index decc885..c4b5b90c 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -29,7 +29,7 @@
show ImpactStrategy, ImpactUseCase, WorldImpact, WorldImpactVisitor;
import 'util/enumset.dart';
import 'util/util.dart' show Setlet;
-import 'world.dart' show ClosedWorld;
+import 'world.dart' show JClosedWorld;
class EnqueueTask extends CompilerTask {
ResolutionEnqueuer _resolution;
@@ -60,7 +60,7 @@
..onEmptyForTesting = compiler.onResolutionQueueEmptyForTesting;
}
- Enqueuer createCodegenEnqueuer(ClosedWorld closedWorld) {
+ Enqueuer createCodegenEnqueuer(JClosedWorld closedWorld) {
return codegenEnqueuerForTesting = compiler.backend
.createCodegenEnqueuer(this, compiler, closedWorld)
..onEmptyForTesting = compiler.onCodegenQueueEmptyForTesting;
diff --git a/pkg/compiler/lib/src/inferrer/builder_kernel.dart b/pkg/compiler/lib/src/inferrer/builder_kernel.dart
index addb4ce..d8c13d6 100644
--- a/pkg/compiler/lib/src/inferrer/builder_kernel.dart
+++ b/pkg/compiler/lib/src/inferrer/builder_kernel.dart
@@ -36,7 +36,7 @@
/// is doing.
class KernelTypeGraphBuilder extends ir.Visitor<TypeInformation> {
final CompilerOptions _options;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final ClosureDataLookup<ir.Node> _closureDataLookup;
final InferrerEngine<ir.Node> _inferrer;
final TypeSystem<ir.Node> _types;
@@ -81,8 +81,7 @@
// TODO(johnniwinther): Should side effects also be tracked for field
// initializers?
this._sideEffectsBuilder = _analyzedMember is FunctionEntity
- ? _inferrer.closedWorldRefiner
- .getSideEffectsBuilder(_analyzedMember)
+ ? _inferrer.closedWorld.getSideEffectsBuilder(_analyzedMember)
: new SideEffectsBuilder.free(_analyzedMember),
this._inGenerativeConstructor = _analyzedNode is ir.Constructor {
if (_locals != null) return;
diff --git a/pkg/compiler/lib/src/inferrer/inferrer_engine.dart b/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
index 799265d..77622dd 100644
--- a/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
+++ b/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
@@ -53,8 +53,7 @@
]);
CompilerOptions get options;
- ClosedWorld get closedWorld;
- ClosedWorldRefiner get closedWorldRefiner;
+ JClosedWorld get closedWorld;
DiagnosticReporter get reporter;
AbstractValueDomain get abstractValueDomain =>
closedWorld.abstractValueDomain;
@@ -267,10 +266,9 @@
final DiagnosticReporter reporter;
final CompilerOutput _compilerOutput;
- /// The [ClosedWorld] on which inference reasoning is based.
- final ClosedWorld closedWorld;
+ /// The [JClosedWorld] on which inference reasoning is based.
+ final JClosedWorld closedWorld;
- final ClosedWorldRefiner closedWorldRefiner;
final TypeSystem<T> types;
final Map<T, TypeInformation> concreteTypes = new Map<T, TypeInformation>();
@@ -294,7 +292,6 @@
this.reporter,
this._compilerOutput,
this.closedWorld,
- this.closedWorldRefiner,
this.noSuchMethodRegistry,
this.mainElement,
this.sorter,
@@ -345,8 +342,7 @@
} else if (callee.isGetter && !selector.isGetter) {
sideEffectsBuilder.setAllSideEffectsAndDependsOnSomething();
} else {
- sideEffectsBuilder
- .addInput(closedWorldRefiner.getSideEffectsBuilder(callee));
+ sideEffectsBuilder.addInput(closedWorld.getSideEffectsBuilder(callee));
}
}
@@ -506,7 +502,7 @@
tracer.run();
if (!tracer.continueAnalyzing) {
elements.forEach((FunctionEntity element) {
- closedWorldRefiner.registerMightBePassedToApply(element);
+ closedWorld.registerMightBePassedToApply(element);
if (debug.VERBOSE) {
print("traced closure $element as ${true} (bail)");
}
@@ -529,11 +525,11 @@
workQueue.add(info);
});
if (tracer.tracedType.mightBePassedToFunctionApply) {
- closedWorldRefiner.registerMightBePassedToApply(element);
+ closedWorld.registerMightBePassedToApply(element);
}
if (debug.VERBOSE) {
print("traced closure $element as "
- "${closedWorldRefiner
+ "${closedWorld
.getCurrentlyKnownMightBePassedToApply(element)}");
}
});
@@ -766,7 +762,7 @@
}
if (info is StaticCallSiteTypeInformation) {
MemberEntity member = info.calledElement;
- closedWorldRefiner.addFunctionCalledInLoop(member);
+ closedWorld.addFunctionCalledInLoop(member);
} else if (info.mask != null &&
!abstractValueDomain.containsAll(info.mask)) {
// For instance methods, we only register a selector called in a
@@ -774,7 +770,7 @@
// methods as being called from within a loop. This cuts down
// on the code bloat.
info.callees.forEach((MemberEntity element) {
- closedWorldRefiner.addFunctionCalledInLoop(element);
+ closedWorld.addFunctionCalledInLoop(element);
});
}
});
diff --git a/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart b/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
index a5f708c..ef1f1bc 100644
--- a/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
+++ b/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
@@ -33,16 +33,10 @@
final GlobalLocalsMap _globalLocalsMap;
final ClosureDataLookup<ir.Node> _closureDataLookup;
- KernelTypeGraphInferrer(
- this._compiler,
- this._elementMap,
- this._globalLocalsMap,
- this._closureDataLookup,
- ClosedWorld closedWorld,
- ClosedWorldRefiner closedWorldRefiner,
+ KernelTypeGraphInferrer(this._compiler, this._elementMap,
+ this._globalLocalsMap, this._closureDataLookup, JClosedWorld closedWorld,
{bool disableTypeInference: false})
- : super(closedWorld, closedWorldRefiner,
- disableTypeInference: disableTypeInference);
+ : super(closedWorld, disableTypeInference: disableTypeInference);
@override
InferrerEngine<ir.Node> createInferrerEngineFor(FunctionEntity main) {
@@ -55,7 +49,6 @@
_globalLocalsMap,
_closureDataLookup,
closedWorld,
- closedWorldRefiner,
_compiler.backend.noSuchMethodRegistry,
main,
_compiler.backendStrategy.sorter);
@@ -70,7 +63,7 @@
class KernelGlobalTypeInferenceResults
extends GlobalTypeInferenceResults<ir.Node> {
KernelGlobalTypeInferenceResults(
- TypesInferrer<ir.Node> inferrer, ClosedWorld closedWorld)
+ TypesInferrer<ir.Node> inferrer, JClosedWorld closedWorld)
: super(inferrer, closedWorld);
GlobalTypeInferenceMemberResult<ir.Node> createMemberResult(
@@ -105,8 +98,7 @@
this._elementMap,
this._globalLocalsMap,
this._closureDataLookup,
- ClosedWorld closedWorld,
- ClosedWorldRefiner closedWorldRefiner,
+ JClosedWorld closedWorld,
NoSuchMethodRegistry noSuchMethodRegistry,
FunctionEntity mainElement,
Sorter sorter)
@@ -116,7 +108,6 @@
reporter,
compilerOutput,
closedWorld,
- closedWorldRefiner,
noSuchMethodRegistry,
mainElement,
sorter,
diff --git a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
index d6482a3..e07ddc6 100644
--- a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
+++ b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
@@ -10,7 +10,7 @@
import '../types/abstract_value_domain.dart';
import '../types/types.dart';
import '../universe/selector.dart' show Selector;
-import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
+import '../world.dart' show JClosedWorld;
import 'inferrer_engine.dart';
import 'type_graph_nodes.dart';
@@ -48,11 +48,9 @@
abstract class TypeGraphInferrer<T> implements TypesInferrer<T> {
InferrerEngine<T> inferrer;
final bool _disableTypeInference;
- final ClosedWorld closedWorld;
- final ClosedWorldRefiner closedWorldRefiner;
+ final JClosedWorld closedWorld;
- TypeGraphInferrer(this.closedWorld, this.closedWorldRefiner,
- {bool disableTypeInference: false})
+ TypeGraphInferrer(this.closedWorld, {bool disableTypeInference: false})
: this._disableTypeInference = disableTypeInference;
String get name => 'Graph inferrer';
diff --git a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
index 2353af8..ce1cc11 100644
--- a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
+++ b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
@@ -15,7 +15,7 @@
import '../types/abstract_value_domain.dart';
import '../universe/selector.dart' show Selector;
import '../util/util.dart' show ImmutableEmptySet, Setlet;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'debug.dart' as debug;
import 'locals_handler.dart' show ArgumentsTypes;
import 'inferrer_engine.dart';
@@ -770,8 +770,7 @@
giveUp(inferrer);
return safeType(inferrer);
}
- if (inferrer.closedWorldRefiner
- .getCurrentlyKnownMightBePassedToApply(_method)) {
+ if (inferrer.closedWorld.getCurrentlyKnownMightBePassedToApply(_method)) {
giveUp(inferrer);
return safeType(inferrer);
}
@@ -1081,7 +1080,7 @@
*/
TypeInformation handleIntrisifiedSelector(
Selector selector, AbstractValue mask, InferrerEngine inferrer) {
- ClosedWorld closedWorld = inferrer.closedWorld;
+ JClosedWorld closedWorld = inferrer.closedWorld;
if (mask == null) return null;
if (!inferrer.abstractValueDomain.isIntegerOrNull(mask)) {
return null;
@@ -1177,7 +1176,7 @@
}
AbstractValue computeType(InferrerEngine inferrer) {
- ClosedWorld closedWorld = inferrer.closedWorld;
+ JClosedWorld closedWorld = inferrer.closedWorld;
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
Iterable<MemberEntity> oldTargets = _concreteTargets;
AbstractValue typeMask = computeTypedSelector(inferrer);
@@ -2009,7 +2008,7 @@
}
AbstractValue _narrowType(
- ClosedWorld closedWorld, AbstractValue type, DartType annotation,
+ JClosedWorld closedWorld, AbstractValue type, DartType annotation,
{bool isNullable: true}) {
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
AbstractValue otherType;
diff --git a/pkg/compiler/lib/src/inferrer/type_system.dart b/pkg/compiler/lib/src/inferrer/type_system.dart
index 672ebbe..b5c8895 100644
--- a/pkg/compiler/lib/src/inferrer/type_system.dart
+++ b/pkg/compiler/lib/src/inferrer/type_system.dart
@@ -46,7 +46,7 @@
* The class [SimpleInferrerVisitor] will use when working on types.
*/
class TypeSystem<T> {
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final TypeSystemStrategy<T> strategy;
/// [parameterTypeInformations] and [memberTypeInformations] ordered by
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/constants.dart b/pkg/compiler/lib/src/inferrer/typemasks/constants.dart
index 501f7e3..5003c72b 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/constants.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/constants.dart
@@ -7,21 +7,21 @@
import '../../common.dart';
import '../../constants/values.dart';
import '../../js_backend/js_backend.dart' show SyntheticConstantKind;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import 'masks.dart';
/// Computes the [TypeMask] for the constant [value].
-TypeMask computeTypeMask(ClosedWorld closedWorld, ConstantValue value) {
+TypeMask computeTypeMask(JClosedWorld closedWorld, ConstantValue value) {
return value.accept(const ConstantValueTypeMasks(), closedWorld);
}
class ConstantValueTypeMasks
- extends ConstantValueVisitor<TypeMask, ClosedWorld> {
+ extends ConstantValueVisitor<TypeMask, JClosedWorld> {
const ConstantValueTypeMasks();
@override
TypeMask visitConstructed(
- ConstructedConstantValue constant, ClosedWorld closedWorld) {
+ ConstructedConstantValue constant, JClosedWorld closedWorld) {
if (closedWorld.interceptorData.isInterceptedClass(constant.type.element)) {
return closedWorld.abstractValueDomain.nonNullType;
}
@@ -30,18 +30,18 @@
@override
TypeMask visitDeferred(
- DeferredConstantValue constant, ClosedWorld closedWorld) {
+ DeferredConstantValue constant, JClosedWorld closedWorld) {
return constant.referenced.accept(this, closedWorld);
}
@override
TypeMask visitDeferredGlobal(
- DeferredGlobalConstantValue constant, ClosedWorld closedWorld) {
+ DeferredGlobalConstantValue constant, JClosedWorld closedWorld) {
return constant.referenced.accept(this, closedWorld);
}
@override
- TypeMask visitDouble(DoubleConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitDouble(DoubleConstantValue constant, JClosedWorld closedWorld) {
// We have to recognize double constants that are 'is int'.
if (closedWorld.constantSystem.isInt(constant)) {
if (constant.isMinusZero) {
@@ -56,7 +56,7 @@
@override
TypeMask visitSynthetic(
- SyntheticConstantValue constant, ClosedWorld closedWorld) {
+ SyntheticConstantValue constant, JClosedWorld closedWorld) {
switch (constant.valueKind) {
case SyntheticConstantKind.DUMMY_INTERCEPTOR:
return constant.payload;
@@ -73,24 +73,24 @@
}
@override
- TypeMask visitBool(BoolConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitBool(BoolConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.boolType;
}
@override
TypeMask visitFunction(
- FunctionConstantValue constant, ClosedWorld closedWorld) {
+ FunctionConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.functionType;
}
@override
TypeMask visitInstantiation(
- InstantiationConstantValue constant, ClosedWorld closedWorld) {
+ InstantiationConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.functionType;
}
@override
- TypeMask visitInt(IntConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitInt(IntConstantValue constant, JClosedWorld closedWorld) {
if (constant.isUInt31()) return closedWorld.abstractValueDomain.uint31Type;
if (constant.isUInt32()) return closedWorld.abstractValueDomain.uint32Type;
if (constant.isPositive())
@@ -100,38 +100,38 @@
@override
TypeMask visitInterceptor(
- InterceptorConstantValue constant, ClosedWorld closedWorld) {
+ InterceptorConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.nonNullType;
}
@override
- TypeMask visitList(ListConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitList(ListConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.constListType;
}
@override
- TypeMask visitMap(MapConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitMap(MapConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.constMapType;
}
@override
- TypeMask visitNull(NullConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitNull(NullConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.nullType;
}
@override
TypeMask visitNonConstant(
- NonConstantValue constant, ClosedWorld closedWorld) {
+ NonConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.nullType;
}
@override
- TypeMask visitString(StringConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitString(StringConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.stringType;
}
@override
- TypeMask visitType(TypeConstantValue constant, ClosedWorld closedWorld) {
+ TypeMask visitType(TypeConstantValue constant, JClosedWorld closedWorld) {
return closedWorld.abstractValueDomain.typeType;
}
}
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/container_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/container_type_mask.dart
index f389c66..9e35791 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/container_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/container_type_mask.dart
@@ -50,13 +50,13 @@
length == other.length;
}
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld) {
TypeMask forwardIntersection = forwardTo.intersection(other, closedWorld);
if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
return forwardIntersection.isNullable ? nullable() : nonNullable();
}
- TypeMask union(dynamic other, ClosedWorld closedWorld) {
+ TypeMask union(dynamic other, JClosedWorld closedWorld) {
if (this == other) {
return this;
} else if (equalsDisregardNull(other)) {
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/dictionary_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/dictionary_type_mask.dart
index 3a620c4..d04e18a 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/dictionary_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/dictionary_type_mask.dart
@@ -56,13 +56,13 @@
(k) => _typeMap.containsKey(k) && _typeMap[k] == other._typeMap[k]);
}
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld) {
TypeMask forwardIntersection = forwardTo.intersection(other, closedWorld);
if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
return forwardIntersection.isNullable ? nullable() : nonNullable();
}
- TypeMask union(dynamic other, ClosedWorld closedWorld) {
+ TypeMask union(dynamic other, JClosedWorld closedWorld) {
if (this == other) {
return this;
} else if (equalsDisregardNull(other)) {
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/flat_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/flat_type_mask.dart
index f83240a..644cfd2 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/flat_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/flat_type_mask.dart
@@ -50,7 +50,7 @@
* [TypeMask.assertIsNormalized] with the factory's result returns `true`.
*/
factory FlatTypeMask.normalized(
- ClassEntity base, int flags, ClosedWorld world) {
+ ClassEntity base, int flags, JClosedWorld world) {
if ((flags >> 1) == EMPTY || ((flags >> 1) == EXACT)) {
return new FlatTypeMask.internal(base, flags);
}
@@ -94,7 +94,7 @@
return isNullable ? new FlatTypeMask.internal(base, flags & ~1) : this;
}
- bool contains(ClassEntity other, ClosedWorld closedWorld) {
+ bool contains(ClassEntity other, JClosedWorld closedWorld) {
if (isEmptyOrNull) {
return false;
} else if (identical(base, other)) {
@@ -109,7 +109,7 @@
}
}
- bool isSingleImplementationOf(ClassEntity cls, ClosedWorld closedWorld) {
+ bool isSingleImplementationOf(ClassEntity cls, JClosedWorld closedWorld) {
// Special case basic types so that, for example, JSString is the
// single implementation of String.
// The general optimization is to realize there is only one class that
@@ -138,7 +138,7 @@
return false;
}
- bool isInMask(TypeMask other, ClosedWorld closedWorld) {
+ bool isInMask(TypeMask other, JClosedWorld closedWorld) {
if (isEmptyOrNull) return isNullable ? other.isNullable : true;
// The empty type contains no classes.
if (other.isEmptyOrNull) return false;
@@ -171,11 +171,11 @@
return satisfies(otherBase, closedWorld);
}
- bool containsMask(TypeMask other, ClosedWorld closedWorld) {
+ bool containsMask(TypeMask other, JClosedWorld closedWorld) {
return other.isInMask(this, closedWorld);
}
- bool containsOnlyInt(ClosedWorld closedWorld) {
+ bool containsOnlyInt(JClosedWorld closedWorld) {
CommonElements commonElements = closedWorld.commonElements;
return base == closedWorld.commonElements.intClass ||
base == commonElements.jsIntClass ||
@@ -184,24 +184,24 @@
base == commonElements.jsUInt32Class;
}
- bool containsOnlyDouble(ClosedWorld closedWorld) {
+ bool containsOnlyDouble(JClosedWorld closedWorld) {
return base == closedWorld.commonElements.doubleClass ||
base == closedWorld.commonElements.jsDoubleClass;
}
- bool containsOnlyNum(ClosedWorld closedWorld) {
+ bool containsOnlyNum(JClosedWorld closedWorld) {
return containsOnlyInt(closedWorld) ||
containsOnlyDouble(closedWorld) ||
base == closedWorld.commonElements.numClass ||
base == closedWorld.commonElements.jsNumberClass;
}
- bool containsOnlyBool(ClosedWorld closedWorld) {
+ bool containsOnlyBool(JClosedWorld closedWorld) {
return base == closedWorld.commonElements.boolClass ||
base == closedWorld.commonElements.jsBoolClass;
}
- bool containsOnlyString(ClosedWorld closedWorld) {
+ bool containsOnlyString(JClosedWorld closedWorld) {
return base == closedWorld.commonElements.stringClass ||
base == closedWorld.commonElements.jsStringClass;
}
@@ -210,7 +210,7 @@
return base == cls;
}
- bool satisfies(ClassEntity cls, ClosedWorld closedWorld) {
+ bool satisfies(ClassEntity cls, JClosedWorld closedWorld) {
if (isEmptyOrNull) return false;
if (closedWorld.isSubtypeOf(base, cls)) return true;
return false;
@@ -218,7 +218,7 @@
/// Returns the [Entity] if this type represents a single class, otherwise
/// returns `null`. This method is conservative.
- ClassEntity singleClass(ClosedWorld closedWorld) {
+ ClassEntity singleClass(JClosedWorld closedWorld) {
if (isEmptyOrNull) return null;
if (isNullable) return null; // It is Null and some other class.
if (isExact) {
@@ -234,12 +234,12 @@
/**
* Returns whether or not this type mask contains all types.
*/
- bool containsAll(ClosedWorld closedWorld) {
+ bool containsAll(JClosedWorld closedWorld) {
if (isEmptyOrNull || isExact) return false;
return identical(base, closedWorld.commonElements.objectClass);
}
- TypeMask union(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask union(TypeMask other, JClosedWorld closedWorld) {
assert(other != null);
assert(TypeMask.assertIsNormalized(this, closedWorld));
assert(TypeMask.assertIsNormalized(other, closedWorld));
@@ -264,7 +264,7 @@
}
}
- TypeMask unionSame(FlatTypeMask other, ClosedWorld closedWorld) {
+ TypeMask unionSame(FlatTypeMask other, JClosedWorld closedWorld) {
assert(base == other.base);
assert(TypeMask.assertIsNormalized(this, closedWorld));
assert(TypeMask.assertIsNormalized(other, closedWorld));
@@ -284,7 +284,7 @@
}
}
- TypeMask unionStrictSubclass(FlatTypeMask other, ClosedWorld closedWorld) {
+ TypeMask unionStrictSubclass(FlatTypeMask other, JClosedWorld closedWorld) {
assert(base != other.base);
assert(closedWorld.isSubclassOf(other.base, base));
assert(TypeMask.assertIsNormalized(this, closedWorld));
@@ -311,7 +311,7 @@
: this;
}
- TypeMask unionStrictSubtype(FlatTypeMask other, ClosedWorld closedWorld) {
+ TypeMask unionStrictSubtype(FlatTypeMask other, JClosedWorld closedWorld) {
assert(base != other.base);
assert(!closedWorld.isSubclassOf(other.base, base));
assert(closedWorld.isSubtypeOf(other.base, base));
@@ -328,7 +328,7 @@
: this;
}
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld) {
assert(other != null);
if (other is! FlatTypeMask) return other.intersection(this, closedWorld);
assert(TypeMask.assertIsNormalized(this, closedWorld));
@@ -353,7 +353,7 @@
}
}
- bool isDisjoint(TypeMask other, ClosedWorld closedWorld) {
+ bool isDisjoint(TypeMask other, JClosedWorld closedWorld) {
if (other is! FlatTypeMask) return other.isDisjoint(this, closedWorld);
FlatTypeMask flatOther = other;
@@ -379,7 +379,7 @@
}
static bool _isDisjointHelper(
- FlatTypeMask a, FlatTypeMask b, ClosedWorld closedWorld) {
+ FlatTypeMask a, FlatTypeMask b, JClosedWorld closedWorld) {
if (!a.isSubclass && b.isSubclass) {
return _isDisjointHelper(b, a, closedWorld);
}
@@ -394,7 +394,7 @@
return true;
}
- TypeMask intersectionSame(FlatTypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersectionSame(FlatTypeMask other, JClosedWorld closedWorld) {
assert(base == other.base);
// The two masks share the base type, so we must chose the most
// constraining kind (the lowest) of the two. Only if both masks
@@ -413,7 +413,7 @@
}
TypeMask intersectionStrictSubclass(
- FlatTypeMask other, ClosedWorld closedWorld) {
+ FlatTypeMask other, JClosedWorld closedWorld) {
assert(base != other.base);
assert(closedWorld.isSubclassOf(other.base, base));
// If this mask isn't at least a subclass mask, then the
@@ -433,7 +433,7 @@
}
TypeMask intersectionStrictSubtype(
- FlatTypeMask other, ClosedWorld closedWorld) {
+ FlatTypeMask other, JClosedWorld closedWorld) {
assert(base != other.base);
assert(closedWorld.isSubtypeOf(other.base, base));
if (!isSubtype) return intersectionHelper(other, closedWorld);
@@ -450,14 +450,14 @@
}
}
- TypeMask intersectionDisjoint(FlatTypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersectionDisjoint(FlatTypeMask other, JClosedWorld closedWorld) {
assert(base != other.base);
assert(!closedWorld.isSubtypeOf(base, other.base));
assert(!closedWorld.isSubtypeOf(other.base, base));
return intersectionHelper(other, closedWorld);
}
- TypeMask intersectionHelper(FlatTypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersectionHelper(FlatTypeMask other, JClosedWorld closedWorld) {
assert(base != other.base);
assert(!closedWorld.isSubclassOf(base, other.base));
assert(!closedWorld.isSubclassOf(other.base, base));
@@ -492,7 +492,7 @@
* privacy is taken into account.
*/
bool canHit(
- MemberEntity element, Selector selector, ClosedWorld closedWorld) {
+ MemberEntity element, Selector selector, JClosedWorld closedWorld) {
CommonElements commonElements = closedWorld.commonElements;
assert(element.name == selector.name);
if (isEmpty) return false;
@@ -528,7 +528,7 @@
}
bool needsNoSuchMethodHandling(
- Selector selector, covariant ClosedWorld closedWorld) {
+ Selector selector, covariant JClosedWorld closedWorld) {
// A call on an empty type mask is either dead code, or a call on
// `null`.
if (isEmptyOrNull) return false;
@@ -536,12 +536,12 @@
// TODO(johnniwinther): A type mask cannot be abstract. Remove the need
// for this noise (currently used for super-calls in inference and mirror
// usage).
- if (isExact && closedWorld.isAbstract(base)) return false;
+ if (isExact && base.isAbstract) return false;
return closedWorld.needsNoSuchMethod(base, selector, _classQuery);
}
- MemberEntity locateSingleMember(Selector selector, ClosedWorld closedWorld) {
+ MemberEntity locateSingleMember(Selector selector, JClosedWorld closedWorld) {
if (isEmptyOrNull) return null;
if (closedWorld.includesClosureCall(selector, this)) return null;
Iterable<MemberEntity> targets = closedWorld.locateMembers(selector, this);
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/forwarding_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/forwarding_type_mask.dart
index a24095d..9841e46 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/forwarding_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/forwarding_type_mask.dart
@@ -26,31 +26,31 @@
bool get isValue => false;
bool get isForwarding => true;
- bool isInMask(TypeMask other, ClosedWorld closedWorld) {
+ bool isInMask(TypeMask other, JClosedWorld closedWorld) {
return forwardTo.isInMask(other, closedWorld);
}
- bool containsMask(TypeMask other, ClosedWorld closedWorld) {
+ bool containsMask(TypeMask other, JClosedWorld closedWorld) {
return forwardTo.containsMask(other, closedWorld);
}
- bool containsOnlyInt(ClosedWorld closedWorld) {
+ bool containsOnlyInt(JClosedWorld closedWorld) {
return forwardTo.containsOnlyInt(closedWorld);
}
- bool containsOnlyDouble(ClosedWorld closedWorld) {
+ bool containsOnlyDouble(JClosedWorld closedWorld) {
return forwardTo.containsOnlyDouble(closedWorld);
}
- bool containsOnlyNum(ClosedWorld closedWorld) {
+ bool containsOnlyNum(JClosedWorld closedWorld) {
return forwardTo.containsOnlyNum(closedWorld);
}
- bool containsOnlyBool(ClosedWorld closedWorld) {
+ bool containsOnlyBool(JClosedWorld closedWorld) {
return forwardTo.containsOnlyBool(closedWorld);
}
- bool containsOnlyString(ClosedWorld closedWorld) {
+ bool containsOnlyString(JClosedWorld closedWorld) {
return forwardTo.containsOnlyString(closedWorld);
}
@@ -58,23 +58,23 @@
return forwardTo.containsOnly(cls);
}
- bool satisfies(ClassEntity cls, ClosedWorld closedWorld) {
+ bool satisfies(ClassEntity cls, JClosedWorld closedWorld) {
return forwardTo.satisfies(cls, closedWorld);
}
- bool contains(ClassEntity cls, ClosedWorld closedWorld) {
+ bool contains(ClassEntity cls, JClosedWorld closedWorld) {
return forwardTo.contains(cls, closedWorld);
}
- bool containsAll(ClosedWorld closedWorld) {
+ bool containsAll(JClosedWorld closedWorld) {
return forwardTo.containsAll(closedWorld);
}
- ClassEntity singleClass(ClosedWorld closedWorld) {
+ ClassEntity singleClass(JClosedWorld closedWorld) {
return forwardTo.singleClass(closedWorld);
}
- TypeMask union(other, ClosedWorld closedWorld) {
+ TypeMask union(other, JClosedWorld closedWorld) {
if (this == other) {
return this;
} else if (equalsDisregardNull(other)) {
@@ -85,25 +85,25 @@
return forwardTo.union(other, closedWorld);
}
- bool isDisjoint(TypeMask other, ClosedWorld closedWorld) {
+ bool isDisjoint(TypeMask other, JClosedWorld closedWorld) {
return forwardTo.isDisjoint(other, closedWorld);
}
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld) {
return forwardTo.intersection(other, closedWorld);
}
bool needsNoSuchMethodHandling(
- Selector selector, covariant ClosedWorld closedWorld) {
+ Selector selector, covariant JClosedWorld closedWorld) {
return forwardTo.needsNoSuchMethodHandling(selector, closedWorld);
}
bool canHit(
- MemberEntity element, Selector selector, ClosedWorld closedWorld) {
+ MemberEntity element, Selector selector, JClosedWorld closedWorld) {
return forwardTo.canHit(element, selector, closedWorld);
}
- MemberEntity locateSingleMember(Selector selector, ClosedWorld closedWorld) {
+ MemberEntity locateSingleMember(Selector selector, JClosedWorld closedWorld) {
return forwardTo.locateSingleMember(selector, closedWorld);
}
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/map_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/map_type_mask.dart
index 7c47b4c..7feedff 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/map_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/map_type_mask.dart
@@ -53,13 +53,13 @@
valueType == other.valueType;
}
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld) {
TypeMask forwardIntersection = forwardTo.intersection(other, closedWorld);
if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
return forwardIntersection.isNullable ? nullable() : nonNullable();
}
- TypeMask union(dynamic other, ClosedWorld closedWorld) {
+ TypeMask union(dynamic other, JClosedWorld closedWorld) {
if (this == other) {
return this;
} else if (equalsDisregardNull(other)) {
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/masks.dart b/pkg/compiler/lib/src/inferrer/typemasks/masks.dart
index ea12636..2b6ae66 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/masks.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/masks.dart
@@ -14,7 +14,7 @@
import '../../universe/world_builder.dart'
show UniverseSelectorConstraints, SelectorConstraintsStrategy;
import '../../util/util.dart';
-import '../../world.dart' show ClassQuery, ClosedWorld;
+import '../../world.dart' show ClassQuery, JClosedWorld;
import '../type_graph_inferrer.dart' show TypeGraphInferrer;
import 'constants.dart';
@@ -30,7 +30,7 @@
class CommonMasks implements AbstractValueDomain {
// TODO(sigmund): once we split out the backend common elements, depend
// directly on those instead.
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
CommonMasks(this._closedWorld);
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/type_mask.dart
index 357fc99..ee7d4b2 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/type_mask.dart
@@ -12,7 +12,7 @@
Set<TypeMask> _masks;
@override
- bool applies(MemberEntity element, Selector selector, ClosedWorld world) {
+ bool applies(MemberEntity element, Selector selector, JClosedWorld world) {
if (isAll) return true;
if (_masks == null) return false;
for (TypeMask mask in _masks) {
@@ -22,7 +22,7 @@
}
@override
- bool needsNoSuchMethodHandling(Selector selector, ClosedWorld world) {
+ bool needsNoSuchMethodHandling(Selector selector, JClosedWorld world) {
if (isAll) {
TypeMask mask =
new TypeMask.subclass(world.commonElements.objectClass, world);
@@ -63,7 +63,7 @@
const TypeMaskStrategy();
@override
- AbstractValueDomain createDomain(ClosedWorld closedWorld) {
+ AbstractValueDomain createDomain(JClosedWorld closedWorld) {
return new CommonMasks(closedWorld);
}
@@ -82,8 +82,8 @@
}
@override
- bool appliedUnnamed(
- DynamicUse dynamicUse, MemberEntity member, covariant ClosedWorld world) {
+ bool appliedUnnamed(DynamicUse dynamicUse, MemberEntity member,
+ covariant JClosedWorld world) {
Selector selector = dynamicUse.selector;
TypeMask mask = dynamicUse.receiverConstraint;
return selector.appliesUnnamed(member) &&
@@ -98,14 +98,14 @@
*/
abstract class TypeMask implements AbstractValue {
factory TypeMask(
- ClassEntity base, int kind, bool isNullable, ClosedWorld closedWorld) {
+ ClassEntity base, int kind, bool isNullable, JClosedWorld closedWorld) {
return new FlatTypeMask.normalized(
base, (kind << 1) | (isNullable ? 1 : 0), closedWorld);
}
const factory TypeMask.empty() = FlatTypeMask.empty;
- factory TypeMask.exact(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.exact(ClassEntity base, JClosedWorld closedWorld) {
assert(
closedWorld.isInstantiated(base),
failedAt(
@@ -115,12 +115,12 @@
return new FlatTypeMask.exact(base);
}
- factory TypeMask.exactOrEmpty(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.exactOrEmpty(ClassEntity base, JClosedWorld closedWorld) {
if (closedWorld.isInstantiated(base)) return new FlatTypeMask.exact(base);
return const TypeMask.empty();
}
- factory TypeMask.subclass(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.subclass(ClassEntity base, JClosedWorld closedWorld) {
assert(
closedWorld.isInstantiated(base),
failedAt(
@@ -137,7 +137,7 @@
}
}
- factory TypeMask.subtype(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.subtype(ClassEntity base, JClosedWorld closedWorld) {
ClassEntity topmost = closedWorld.getLubOfInstantiatedSubtypes(base);
if (topmost == null) {
return new TypeMask.empty();
@@ -154,7 +154,7 @@
const factory TypeMask.nonNullEmpty() = FlatTypeMask.nonNullEmpty;
- factory TypeMask.nonNullExact(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.nonNullExact(ClassEntity base, JClosedWorld closedWorld) {
assert(
closedWorld.isInstantiated(base),
failedAt(
@@ -165,14 +165,14 @@
}
factory TypeMask.nonNullExactOrEmpty(
- ClassEntity base, ClosedWorld closedWorld) {
+ ClassEntity base, JClosedWorld closedWorld) {
if (closedWorld.isInstantiated(base)) {
return new FlatTypeMask.nonNullExact(base);
}
return const TypeMask.nonNullEmpty();
}
- factory TypeMask.nonNullSubclass(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.nonNullSubclass(ClassEntity base, JClosedWorld closedWorld) {
assert(
closedWorld.isInstantiated(base),
failedAt(
@@ -189,7 +189,7 @@
}
}
- factory TypeMask.nonNullSubtype(ClassEntity base, ClosedWorld closedWorld) {
+ factory TypeMask.nonNullSubtype(ClassEntity base, JClosedWorld closedWorld) {
ClassEntity topmost = closedWorld.getLubOfInstantiatedSubtypes(base);
if (topmost == null) {
return new TypeMask.nonNullEmpty();
@@ -204,7 +204,7 @@
}
}
- factory TypeMask.unionOf(Iterable<TypeMask> masks, ClosedWorld closedWorld) {
+ factory TypeMask.unionOf(Iterable<TypeMask> masks, JClosedWorld closedWorld) {
return UnionTypeMask.unionOf(masks, closedWorld);
}
@@ -226,14 +226,15 @@
* subclasses exist. We also normalize exact to empty if the corresponding
* baseclass was never instantiated.
*/
- static bool assertIsNormalized(TypeMask mask, ClosedWorld closedWorld) {
+ static bool assertIsNormalized(TypeMask mask, JClosedWorld closedWorld) {
String reason = getNotNormalizedReason(mask, closedWorld);
assert(reason == null,
failedAt(NO_LOCATION_SPANNABLE, '$mask is not normalized: $reason'));
return true;
}
- static String getNotNormalizedReason(TypeMask mask, ClosedWorld closedWorld) {
+ static String getNotNormalizedReason(
+ TypeMask mask, JClosedWorld closedWorld) {
mask = nonForwardingMask(mask);
if (mask is FlatTypeMask) {
if (mask.isEmptyOrNull) return null;
@@ -316,11 +317,11 @@
/// Returns `true` if this mask holds encodes an exact value within a type.
bool get isValue;
- bool containsOnlyInt(ClosedWorld closedWorld);
- bool containsOnlyDouble(ClosedWorld closedWorld);
- bool containsOnlyNum(ClosedWorld closedWorld);
- bool containsOnlyBool(ClosedWorld closedWorld);
- bool containsOnlyString(ClosedWorld closedWorld);
+ bool containsOnlyInt(JClosedWorld closedWorld);
+ bool containsOnlyDouble(JClosedWorld closedWorld);
+ bool containsOnlyNum(JClosedWorld closedWorld);
+ bool containsOnlyBool(JClosedWorld closedWorld);
+ bool containsOnlyString(JClosedWorld closedWorld);
bool containsOnly(ClassEntity cls);
/**
@@ -337,7 +338,7 @@
* Enable [UnionTypeMask.PERFORM_EXTRA_CONTAINS_CHECK] to be notified of
* false negatives.
*/
- bool isInMask(TypeMask other, ClosedWorld closedWorld);
+ bool isInMask(TypeMask other, JClosedWorld closedWorld);
/**
* If this returns `true`, [other] is guaranteed to be a subtype of this mask,
@@ -345,52 +346,53 @@
* Enable [UnionTypeMask.PERFORM_EXTRA_CONTAINS_CHECK] to be notified of
* false negatives.
*/
- bool containsMask(TypeMask other, ClosedWorld closedWorld);
+ bool containsMask(TypeMask other, JClosedWorld closedWorld);
/**
* Returns whether this type mask is an instance of [cls].
*/
- bool satisfies(ClassEntity cls, ClosedWorld closedWorld);
+ bool satisfies(ClassEntity cls, JClosedWorld closedWorld);
/**
* Returns whether or not this type mask contains the given class [cls].
*/
- bool contains(ClassEntity cls, ClosedWorld closedWorld);
+ bool contains(ClassEntity cls, JClosedWorld closedWorld);
/// Returns whether or not this type mask contains all types.
- bool containsAll(ClosedWorld closedWorld);
+ bool containsAll(JClosedWorld closedWorld);
/// Returns the [ClassEntity] if this type represents a single class,
/// otherwise returns `null`. This method is conservative.
- ClassEntity singleClass(ClosedWorld closedWorld);
+ ClassEntity singleClass(JClosedWorld closedWorld);
/**
* Returns a type mask representing the union of [this] and [other].
*/
- TypeMask union(TypeMask other, ClosedWorld closedWorld);
+ TypeMask union(TypeMask other, JClosedWorld closedWorld);
/// Returns whether the intersection of this and [other] is empty.
- bool isDisjoint(TypeMask other, ClosedWorld closedWorld);
+ bool isDisjoint(TypeMask other, JClosedWorld closedWorld);
/**
* Returns a type mask representing the intersection of [this] and [other].
*/
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld);
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld);
/**
* Returns whether [element] is a potential target when being
* invoked on this type mask. [selector] is used to ensure library
* privacy is taken into account.
*/
- bool canHit(MemberEntity element, Selector selector, ClosedWorld closedWorld);
+ bool canHit(
+ MemberEntity element, Selector selector, JClosedWorld closedWorld);
/// Returns whether this [TypeMask] applied to [selector] can hit a
/// [noSuchMethod].
- bool needsNoSuchMethodHandling(Selector selector, ClosedWorld world);
+ bool needsNoSuchMethodHandling(Selector selector, JClosedWorld world);
/**
* Returns the [element] that is known to always be hit at runtime
* on this mask. Returns null if there is none.
*/
- MemberEntity locateSingleMember(Selector selector, ClosedWorld closedWorld);
+ MemberEntity locateSingleMember(Selector selector, JClosedWorld closedWorld);
}
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/union_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/union_type_mask.dart
index 178f878..6121c08 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/union_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/union_type_mask.dart
@@ -19,7 +19,7 @@
assert(disjointMasks.every((TypeMask mask) => !mask.isUnion));
}
- static TypeMask unionOf(Iterable<TypeMask> masks, ClosedWorld closedWorld) {
+ static TypeMask unionOf(Iterable<TypeMask> masks, JClosedWorld closedWorld) {
assert(
masks.every((mask) => TypeMask.assertIsNormalized(mask, closedWorld)));
List<FlatTypeMask> disjoint = <FlatTypeMask>[];
@@ -35,7 +35,7 @@
}
static void unionOfHelper(Iterable<TypeMask> masks,
- List<FlatTypeMask> disjoint, ClosedWorld closedWorld) {
+ List<FlatTypeMask> disjoint, JClosedWorld closedWorld) {
// TODO(johnniwinther): Impose an order on the mask to ensure subclass masks
// are preferred to subtype masks.
for (TypeMask mask in masks) {
@@ -87,7 +87,7 @@
}
}
- static TypeMask flatten(List<FlatTypeMask> masks, ClosedWorld closedWorld) {
+ static TypeMask flatten(List<FlatTypeMask> masks, JClosedWorld closedWorld) {
// TODO(johnniwinther): Move this computation to [ClosedWorld] and use the
// class set structures.
assert(masks.length > 1);
@@ -137,7 +137,7 @@
return new TypeMask(bestElement, bestKind, isNullable, closedWorld);
}
- TypeMask union(dynamic other, ClosedWorld closedWorld) {
+ TypeMask union(dynamic other, JClosedWorld closedWorld) {
other = TypeMask.nonForwardingMask(other);
if (!other.isUnion && disjointMasks.contains(other)) return this;
@@ -151,7 +151,7 @@
return new TypeMask.unionOf(newList, closedWorld);
}
- TypeMask intersection(dynamic other, ClosedWorld closedWorld) {
+ TypeMask intersection(dynamic other, JClosedWorld closedWorld) {
other = TypeMask.nonForwardingMask(other);
if (!other.isUnion && disjointMasks.contains(other)) return other;
if (other.isUnion && this == other) return this;
@@ -173,7 +173,7 @@
return new TypeMask.unionOf(intersections, closedWorld);
}
- bool isDisjoint(TypeMask other, ClosedWorld closedWorld) {
+ bool isDisjoint(TypeMask other, JClosedWorld closedWorld) {
for (var current in disjointMasks) {
if (!current.isDisjoint(other, closedWorld)) return false;
}
@@ -216,7 +216,7 @@
* - the cheap test matching against individual members of [disjointMasks]
* must have failed.
*/
- bool slowContainsCheck(TypeMask other, ClosedWorld closedWorld) {
+ bool slowContainsCheck(TypeMask other, JClosedWorld closedWorld) {
// Unions should never make it here.
assert(!other.isUnion);
// Ensure the cheap test fails.
@@ -245,7 +245,7 @@
return members.every((ClassEntity cls) => this.contains(cls, closedWorld));
}
- bool isInMask(TypeMask other, ClosedWorld closedWorld) {
+ bool isInMask(TypeMask other, JClosedWorld closedWorld) {
other = TypeMask.nonForwardingMask(other);
if (isNullable && !other.isNullable) return false;
if (other.isUnion) {
@@ -273,7 +273,7 @@
return disjointMasks.every((mask) => mask.isInMask(other, closedWorld));
}
- bool containsMask(TypeMask other, ClosedWorld closedWorld) {
+ bool containsMask(TypeMask other, JClosedWorld closedWorld) {
other = TypeMask.nonForwardingMask(other);
if (other.isNullable && !isNullable) return false;
if (other.isUnion) return other.isInMask(this, closedWorld);
@@ -288,25 +288,25 @@
return contained;
}
- bool containsOnlyInt(ClosedWorld closedWorld) {
+ bool containsOnlyInt(JClosedWorld closedWorld) {
return disjointMasks.every((mask) => mask.containsOnlyInt(closedWorld));
}
- bool containsOnlyDouble(ClosedWorld closedWorld) {
+ bool containsOnlyDouble(JClosedWorld closedWorld) {
return disjointMasks.every((mask) => mask.containsOnlyDouble(closedWorld));
}
- bool containsOnlyNum(ClosedWorld closedWorld) {
+ bool containsOnlyNum(JClosedWorld closedWorld) {
return disjointMasks.every((mask) {
return mask.containsOnlyNum(closedWorld);
});
}
- bool containsOnlyBool(ClosedWorld closedWorld) {
+ bool containsOnlyBool(JClosedWorld closedWorld) {
return disjointMasks.every((mask) => mask.containsOnlyBool(closedWorld));
}
- bool containsOnlyString(ClosedWorld closedWorld) {
+ bool containsOnlyString(JClosedWorld closedWorld) {
return disjointMasks.every((mask) => mask.containsOnlyString(closedWorld));
}
@@ -314,31 +314,31 @@
return disjointMasks.every((mask) => mask.containsOnly(element));
}
- bool satisfies(ClassEntity cls, ClosedWorld closedWorld) {
+ bool satisfies(ClassEntity cls, JClosedWorld closedWorld) {
return disjointMasks.every((mask) => mask.satisfies(cls, closedWorld));
}
- bool contains(ClassEntity cls, ClosedWorld closedWorld) {
+ bool contains(ClassEntity cls, JClosedWorld closedWorld) {
return disjointMasks.any((e) => e.contains(cls, closedWorld));
}
- bool containsAll(ClosedWorld closedWorld) {
+ bool containsAll(JClosedWorld closedWorld) {
return disjointMasks.any((mask) => mask.containsAll(closedWorld));
}
- ClassEntity singleClass(ClosedWorld closedWorld) => null;
+ ClassEntity singleClass(JClosedWorld closedWorld) => null;
- bool needsNoSuchMethodHandling(Selector selector, ClosedWorld closedWorld) {
+ bool needsNoSuchMethodHandling(Selector selector, JClosedWorld closedWorld) {
return disjointMasks
.any((e) => e.needsNoSuchMethodHandling(selector, closedWorld));
}
bool canHit(
- MemberEntity element, Selector selector, ClosedWorld closedWorld) {
+ MemberEntity element, Selector selector, JClosedWorld closedWorld) {
return disjointMasks.any((e) => e.canHit(element, selector, closedWorld));
}
- MemberEntity locateSingleMember(Selector selector, ClosedWorld closedWorld) {
+ MemberEntity locateSingleMember(Selector selector, JClosedWorld closedWorld) {
MemberEntity candidate;
for (FlatTypeMask mask in disjointMasks) {
MemberEntity current = mask.locateSingleMember(selector, closedWorld);
diff --git a/pkg/compiler/lib/src/inferrer/typemasks/value_type_mask.dart b/pkg/compiler/lib/src/inferrer/typemasks/value_type_mask.dart
index 8d4cc44..ebeda52 100644
--- a/pkg/compiler/lib/src/inferrer/typemasks/value_type_mask.dart
+++ b/pkg/compiler/lib/src/inferrer/typemasks/value_type_mask.dart
@@ -27,7 +27,7 @@
return super.equalsDisregardNull(other) && value == other.value;
}
- TypeMask intersection(TypeMask other, ClosedWorld closedWorld) {
+ TypeMask intersection(TypeMask other, JClosedWorld closedWorld) {
TypeMask forwardIntersection = forwardTo.intersection(other, closedWorld);
if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
return forwardIntersection.isNullable ? nullable() : nonNullable();
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index 8f366c0..c06c5f0 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -46,7 +46,7 @@
import '../universe/world_impact.dart'
show ImpactStrategy, ImpactUseCase, WorldImpact, WorldImpactVisitor;
import '../util/util.dart';
-import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
+import '../world.dart' show JClosedWorld;
import 'annotations.dart' as optimizerHints;
import 'backend_impact.dart';
import 'backend_usage.dart';
@@ -70,7 +70,7 @@
void onCodegenStart();
/// Generates JavaScript code for `work.element`.
- jsAst.Fun compile(CodegenWorkItem work, ClosedWorld closedWorld);
+ jsAst.Fun compile(CodegenWorkItem work, JClosedWorld closedWorld);
Iterable get tasks;
}
@@ -494,7 +494,7 @@
}
Namer determineNamer(
- ClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder) {
+ JClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder) {
return compiler.options.enableMinification
? compiler.options.useFrequencyNamer
? new FrequencyBasedNamer(closedWorld, codegenWorldBuilder)
@@ -546,8 +546,8 @@
}
/// Called when the closed world from resolution has been computed.
- void onResolutionClosedWorld(ClosedWorldRefiner closedWorldRefiner) {
- processAnnotations(closedWorldRefiner);
+ void onResolutionClosedWorld(JClosedWorld closedWorld) {
+ processAnnotations(closedWorld);
}
void onDeferredLoadComplete(OutputUnitData data) {
@@ -635,7 +635,7 @@
/// Creates an [Enqueuer] for code generation specific to this backend.
CodegenEnqueuer createCodegenEnqueuer(
- CompilerTask task, Compiler compiler, ClosedWorld closedWorld) {
+ CompilerTask task, Compiler compiler, JClosedWorld closedWorld) {
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
CommonElements commonElements = closedWorld.commonElements;
BackendImpacts impacts =
@@ -675,7 +675,7 @@
static bool cacheCodegenImpactForTesting = false;
Map<MemberEntity, WorldImpact> codegenImpactsForTesting;
- WorldImpact codegen(CodegenWorkItem work, ClosedWorld closedWorld) {
+ WorldImpact codegen(CodegenWorkItem work, JClosedWorld closedWorld) {
MemberEntity element = work.element;
if (compiler.elementHasCompileTimeError(element)) {
DiagnosticMessage message =
@@ -730,7 +730,7 @@
}
/// Generates the output and returns the total size of the generated code.
- int assembleProgram(ClosedWorld closedWorld) {
+ int assembleProgram(JClosedWorld closedWorld) {
int programSize = emitter.assembleProgram(namer, closedWorld);
closedWorld.noSuchMethodData.emitDiagnostic(reporter);
return programSize;
@@ -785,7 +785,7 @@
/// Called when the compiler starts running the codegen enqueuer. The
/// [WorldImpact] of enabled backend features is returned.
- WorldImpact onCodegenStart(ClosedWorld closedWorld,
+ WorldImpact onCodegenStart(JClosedWorld closedWorld,
CodegenWorldBuilder codegenWorldBuilder, Sorter sorter) {
functionCompiler.onCodegenStart();
_oneShotInterceptorData = new OneShotInterceptorData(
@@ -842,23 +842,20 @@
/// Process backend specific annotations.
// TODO(johnniwinther): Merge this with [AnnotationProcessor] and use
// [ElementEnvironment.getMemberMetadata] in [AnnotationProcessor].
- void processAnnotations(ClosedWorldRefiner closedWorldRefiner) {
- ClosedWorld closedWorld = closedWorldRefiner.closedWorld;
+ void processAnnotations(JClosedWorld closedWorld) {
// These methods are overwritten with generated versions.
inlineCache.markAsNonInlinable(
closedWorld.commonElements.getInterceptorMethod,
insideLoop: true);
for (MemberEntity entity in closedWorld.processedMembers) {
- _processMemberAnnotations(closedWorld.elementEnvironment,
- closedWorld.commonElements, entity, closedWorldRefiner);
+ _processMemberAnnotations(closedWorld, entity);
}
}
void _processMemberAnnotations(
- ElementEnvironment elementEnvironment,
- CommonElements commonElements,
- MemberEntity element,
- ClosedWorldRefiner closedWorldRefiner) {
+ JClosedWorld closedWorld, MemberEntity element) {
+ ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
+ CommonElements commonElements = closedWorld.commonElements;
bool hasNoInline = false;
bool hasForceInline = false;
@@ -930,14 +927,14 @@
reporter.reportHintMessage(
method, MessageKind.GENERIC, {'text': "Cannot throw"});
}
- closedWorldRefiner.registerCannotThrow(method);
+ closedWorld.registerCannotThrow(method);
} else if (cls == commonElements.noSideEffectsClass) {
hasNoSideEffects = true;
if (VERBOSE_OPTIMIZER_HINTS) {
reporter.reportHintMessage(
method, MessageKind.GENERIC, {'text': "Has no side effects"});
}
- closedWorldRefiner.registerSideEffectsFree(method);
+ closedWorld.registerSideEffectsFree(method);
}
}
if (hasForceInline && hasNoInline) {
diff --git a/pkg/compiler/lib/src/js_backend/field_naming_mixin.dart b/pkg/compiler/lib/src/js_backend/field_naming_mixin.dart
index cbb30a5..f7e8984 100644
--- a/pkg/compiler/lib/src/js_backend/field_naming_mixin.dart
+++ b/pkg/compiler/lib/src/js_backend/field_naming_mixin.dart
@@ -116,7 +116,7 @@
}
factory _FieldNamingScope.forClass(
- ClassEntity cls, ClosedWorld world, _FieldNamingRegistry registry) {
+ ClassEntity cls, JClosedWorld world, _FieldNamingRegistry registry) {
_FieldNamingScope result = registry.scopes[cls];
if (result != null) return result;
diff --git a/pkg/compiler/lib/src/js_backend/frequency_namer.dart b/pkg/compiler/lib/src/js_backend/frequency_namer.dart
index 9ce989c..343d440 100644
--- a/pkg/compiler/lib/src/js_backend/frequency_namer.dart
+++ b/pkg/compiler/lib/src/js_backend/frequency_namer.dart
@@ -30,7 +30,7 @@
_staticsPropertyName ??= getFreshName(instanceScope, 'static');
FrequencyBasedNamer(
- ClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder)
+ JClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder)
: super(closedWorld, codegenWorldBuilder) {
fieldRegistry = new _FieldNamingRegistry(this);
}
diff --git a/pkg/compiler/lib/src/js_backend/interceptor_data.dart b/pkg/compiler/lib/src/js_backend/interceptor_data.dart
index 925d846..3ef09f3 100644
--- a/pkg/compiler/lib/src/js_backend/interceptor_data.dart
+++ b/pkg/compiler/lib/src/js_backend/interceptor_data.dart
@@ -11,7 +11,7 @@
import '../js/js.dart' as jsAst;
import '../types/abstract_value_domain.dart';
import '../universe/selector.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'namer.dart';
import 'native_data.dart';
@@ -25,7 +25,7 @@
bool isInterceptedName(String name);
bool isInterceptedSelector(Selector selector);
bool isInterceptedMixinSelector(
- Selector selector, AbstractValue mask, ClosedWorld closedWorld);
+ Selector selector, AbstractValue mask, JClosedWorld closedWorld);
Iterable<ClassEntity> get interceptedClasses;
bool isMixedIntoInterceptedClass(ClassEntity element);
@@ -33,12 +33,12 @@
///
/// Returns an empty set if there is no class. Do not modify the returned set.
Set<ClassEntity> getInterceptedClassesOn(
- String name, ClosedWorld closedWorld);
+ String name, JClosedWorld closedWorld);
/// Whether the compiler can use the native `instanceof` check to test for
/// instances of [type]. This is true for types that are not used as mixins or
/// interfaces.
- bool mayGenerateInstanceofCheck(DartType type, ClosedWorld closedWorld);
+ bool mayGenerateInstanceofCheck(DartType type, JClosedWorld closedWorld);
}
abstract class InterceptorDataBuilder {
@@ -117,7 +117,7 @@
/// into an intercepted class. These selectors are not eligible for the
/// 'dummy explicit receiver' optimization.
bool isInterceptedMixinSelector(
- Selector selector, AbstractValue mask, ClosedWorld closedWorld) {
+ Selector selector, AbstractValue mask, JClosedWorld closedWorld) {
Set<MemberEntity> elements =
_interceptedMixinElements.putIfAbsent(selector.name, () {
Set<MemberEntity> elements = interceptedMembers[selector.name];
@@ -153,7 +153,7 @@
///
/// Returns an empty set if there is no class. Do not modify the returned set.
Set<ClassEntity> getInterceptedClassesOn(
- String name, ClosedWorld closedWorld) {
+ String name, JClosedWorld closedWorld) {
Set<MemberEntity> intercepted = interceptedMembers[name];
if (intercepted == null) return _noClasses;
return _interceptedClassesCache.putIfAbsent(name, () {
@@ -178,7 +178,7 @@
}
Set<ClassEntity> nativeSubclassesOfMixin(
- ClassEntity mixin, ClosedWorld closedWorld) {
+ ClassEntity mixin, JClosedWorld closedWorld) {
Iterable<ClassEntity> uses = closedWorld.mixinUsesOf(mixin);
Set<ClassEntity> result = null;
for (ClassEntity use in uses) {
@@ -203,7 +203,7 @@
bool isMixedIntoInterceptedClass(ClassEntity element) =>
classesMixedIntoInterceptedClasses.contains(element);
- bool mayGenerateInstanceofCheck(DartType type, ClosedWorld closedWorld) {
+ bool mayGenerateInstanceofCheck(DartType type, JClosedWorld closedWorld) {
// We can use an instanceof check for raw types that have no subclass that
// is mixed-in or in an implements clause.
@@ -312,7 +312,7 @@
_specializedGetInterceptors[name];
jsAst.Name registerOneShotInterceptor(
- Selector selector, Namer namer, ClosedWorld closedWorld) {
+ Selector selector, Namer namer, JClosedWorld closedWorld) {
Set<ClassEntity> classes =
_interceptorData.getInterceptedClassesOn(selector.name, closedWorld);
jsAst.Name name = namer.nameForGetOneShotInterceptor(selector, classes);
diff --git a/pkg/compiler/lib/src/js_backend/minify_namer.dart b/pkg/compiler/lib/src/js_backend/minify_namer.dart
index 723bca7..49078b9 100644
--- a/pkg/compiler/lib/src/js_backend/minify_namer.dart
+++ b/pkg/compiler/lib/src/js_backend/minify_namer.dart
@@ -12,7 +12,7 @@
_MinifiedFieldNamer,
_MinifyConstructorBodyNamer,
_MinifiedOneShotInterceptorNamer {
- MinifyNamer(ClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder)
+ MinifyNamer(JClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder)
: super(closedWorld, codegenWorldBuilder) {
reserveBackendNames();
fieldRegistry = new _FieldNamingRegistry(this);
diff --git a/pkg/compiler/lib/src/js_backend/namer.dart b/pkg/compiler/lib/src/js_backend/namer.dart
index ee47e3e..0b4d5db 100644
--- a/pkg/compiler/lib/src/js_backend/namer.dart
+++ b/pkg/compiler/lib/src/js_backend/namer.dart
@@ -27,7 +27,7 @@
import '../universe/selector.dart' show Selector, SelectorKind;
import '../universe/world_builder.dart' show CodegenWorldBuilder;
import '../util/util.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'backend.dart';
import 'constant_system_javascript.dart';
import 'native_data.dart';
@@ -492,7 +492,7 @@
static final RegExp IDENTIFIER = new RegExp(r'^[A-Za-z_$][A-Za-z0-9_$]*$');
static final RegExp NON_IDENTIFIER_CHAR = new RegExp(r'[^A-Za-z_0-9$]');
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final CodegenWorldBuilder _codegenWorldBuilder;
RuntimeTypesEncoder _rtiEncoder;
diff --git a/pkg/compiler/lib/src/js_backend/runtime_types.dart b/pkg/compiler/lib/src/js_backend/runtime_types.dart
index 886651f..d637cb1 100644
--- a/pkg/compiler/lib/src/js_backend/runtime_types.dart
+++ b/pkg/compiler/lib/src/js_backend/runtime_types.dart
@@ -15,7 +15,7 @@
import '../options.dart';
import '../universe/selector.dart';
import '../universe/world_builder.dart';
-import '../world.dart' show ClosedWorld, KClosedWorld;
+import '../world.dart' show JClosedWorld, KClosedWorld;
import 'backend_usage.dart';
import 'namer.dart';
import 'native_data.dart';
@@ -202,7 +202,7 @@
}
class TrivialRuntimeTypesChecksBuilder implements RuntimeTypesChecksBuilder {
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final TrivialRuntimeTypesSubstitutions _substitutions;
bool rtiChecksBuilderClosed = false;
@@ -267,7 +267,7 @@
abstract class RuntimeTypesSubstitutionsMixin
implements RuntimeTypesSubstitutions {
- ClosedWorld get _closedWorld;
+ JClosedWorld get _closedWorld;
TypeChecks get _requiredChecks;
ElementEnvironment get _elementEnvironment => _closedWorld.elementEnvironment;
@@ -585,7 +585,7 @@
}
class TrivialRuntimeTypesSubstitutions extends RuntimeTypesSubstitutionsMixin {
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
TypeChecks _requiredChecks;
TrivialRuntimeTypesSubstitutions(this._closedWorld);
@@ -1650,7 +1650,7 @@
class RuntimeTypesImpl extends _RuntimeTypesBase
with RuntimeTypesSubstitutionsMixin
implements RuntimeTypesChecksBuilder {
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
// The set of type arguments tested against type variable bounds.
final Set<DartType> checkedTypeArguments = new Set<DartType>();
diff --git a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
index 3d74a3e..93f1a0a 100644
--- a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
@@ -15,7 +15,7 @@
import '../universe/selector.dart' show Selector;
import '../universe/world_builder.dart'
show CodegenWorldBuilder, SelectorConstraints;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'code_emitter_task.dart';
import 'model.dart';
@@ -23,7 +23,7 @@
class ClassStubGenerator {
final Namer _namer;
final CodegenWorldBuilder _worldBuilder;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final bool enableMinification;
final Emitter _emitter;
final CommonElements _commonElements;
diff --git a/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart b/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart
index 00bfaf7..b8d5263 100644
--- a/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart
+++ b/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart
@@ -15,7 +15,7 @@
import '../js/js.dart' as jsAst;
import '../js_backend/js_backend.dart' show JavaScriptBackend, Namer;
import '../universe/world_builder.dart' show CodegenWorldBuilder;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'full_emitter/emitter.dart' as full_js_emitter;
import 'program_builder/program_builder.dart';
import 'startup_emitter/emitter.dart' as startup_js_emitter;
@@ -155,7 +155,7 @@
}
/// Creates the [Emitter] for this task.
- void createEmitter(Namer namer, ClosedWorld closedWorld,
+ void createEmitter(Namer namer, JClosedWorld closedWorld,
CodegenWorldBuilder codegenWorldBuilder, Sorter sorter) {
measure(() {
_nativeEmitter = new NativeEmitter(this, closedWorld, codegenWorldBuilder,
@@ -169,7 +169,7 @@
});
}
- int assembleProgram(Namer namer, ClosedWorld closedWorld) {
+ int assembleProgram(Namer namer, JClosedWorld closedWorld) {
return measure(() {
_finalizeRti();
ProgramBuilder programBuilder = new ProgramBuilder(
@@ -216,7 +216,7 @@
/// Create the [Emitter] for the emitter [task] that uses the given [namer].
Emitter createEmitter(CodeEmitterTask task, Namer namer,
- ClosedWorld closedWorld, Sorter sorter);
+ JClosedWorld closedWorld, Sorter sorter);
}
abstract class Emitter {
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/class_emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/class_emitter.dart
index 3a54cf6..a888d94 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/class_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/class_emitter.dart
@@ -12,13 +12,13 @@
import '../../js/js.dart' as jsAst;
import '../../js/js.dart' show js;
import '../../js_backend/js_backend.dart' show CompoundName, Namer;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import '../js_emitter.dart' hide Emitter, EmitterFactory;
import '../model.dart';
import 'emitter.dart';
class ClassEmitter extends CodeEmitterHelper {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
ClassEmitter(this.closedWorld);
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
index bdc35cd..34a538d 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
@@ -29,7 +29,7 @@
import '../../universe/call_structure.dart' show CallStructure;
import '../../universe/world_builder.dart' show CodegenWorldBuilder;
import '../../util/uri_extras.dart' show relativize;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import '../constant_ordering.dart' show ConstantOrdering;
import '../headers.dart';
import '../js_emitter.dart' hide Emitter, EmitterFactory;
@@ -65,7 +65,7 @@
@override
Emitter createEmitter(CodeEmitterTask task, Namer namer,
- ClosedWorld closedWorld, Sorter sorter) {
+ JClosedWorld closedWorld, Sorter sorter) {
return new Emitter(
task.compiler, namer, closedWorld, generateSourceMap, task, sorter);
}
@@ -74,7 +74,7 @@
class Emitter extends js_emitter.EmitterBase {
final Compiler compiler;
final CodeEmitterTask task;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
// The following fields will be set to copies of the program-builder's
// collector.
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/interceptor_emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/interceptor_emitter.dart
index dab39d9..dc2f3c3 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/interceptor_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/interceptor_emitter.dart
@@ -8,13 +8,13 @@
import '../../elements/entities.dart';
import '../../js/js.dart' as jsAst;
import '../../js/js.dart' show js;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import '../js_emitter.dart' hide Emitter, EmitterFactory;
import '../model.dart';
import 'emitter.dart';
class InterceptorEmitter extends CodeEmitterHelper {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final Set<jsAst.Name> interceptorInvocationNames = new Set<jsAst.Name>();
InterceptorEmitter(this.closedWorld);
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart
index 48af9c9..5e15f2a 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart
@@ -11,13 +11,13 @@
import '../../universe/selector.dart' show Selector;
import 'package:front_end/src/fasta/scanner/characters.dart'
show $$, $A, $HASH, $Z, $a, $z;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import '../js_emitter.dart' hide Emitter, EmitterFactory;
import '../model.dart';
import 'emitter.dart';
class NsmEmitter extends CodeEmitterHelper {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final List<Selector> trivialNsmHandlers = <Selector>[];
NsmEmitter(this.closedWorld);
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart
index f5a6d47..b5492b7 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart
@@ -32,7 +32,7 @@
JavaScriptBackend backend,
Namer namer,
Emitter emitter,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
jsAst.Expression typeInformationAccess =
emitter.generateEmbeddedGlobalAccess(embeddedNames.TYPE_INFORMATION);
jsAst.Expression staticsAccess =
diff --git a/pkg/compiler/lib/src/js_emitter/instantiation_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/instantiation_stub_generator.dart
index 477ced0..2804e12 100644
--- a/pkg/compiler/lib/src/js_emitter/instantiation_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/instantiation_stub_generator.dart
@@ -15,7 +15,7 @@
import '../universe/selector.dart' show Selector;
import '../universe/world_builder.dart'
show CodegenWorldBuilder, SelectorConstraints;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'model.dart';
@@ -27,7 +27,7 @@
final CommonElements _commonElements;
final Namer _namer;
final CodegenWorldBuilder _codegenWorldBuilder;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
// ignore: UNUSED_FIELD
final SourceInformationStrategy _sourceInformationStrategy;
diff --git a/pkg/compiler/lib/src/js_emitter/interceptor_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/interceptor_stub_generator.dart
index b589950..f5d7ab1 100644
--- a/pkg/compiler/lib/src/js_emitter/interceptor_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/interceptor_stub_generator.dart
@@ -21,7 +21,7 @@
import '../options.dart';
import '../universe/selector.dart' show Selector;
import '../universe/world_builder.dart' show CodegenWorldBuilder;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'code_emitter_task.dart' show CodeEmitterTask, Emitter;
@@ -34,7 +34,7 @@
final OneShotInterceptorData _oneShotInterceptorData;
final CustomElementsCodegenAnalysis _customElementsCodegenAnalysis;
final CodegenWorldBuilder _codegenWorldBuilder;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
InterceptorStubGenerator(
this._options,
diff --git a/pkg/compiler/lib/src/js_emitter/native_emitter.dart b/pkg/compiler/lib/src/js_emitter/native_emitter.dart
index 12110ab..b931c3b 100644
--- a/pkg/compiler/lib/src/js_emitter/native_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/native_emitter.dart
@@ -14,14 +14,14 @@
import '../js_backend/native_data.dart';
import '../native/enqueue.dart' show NativeCodegenEnqueuer;
import '../universe/world_builder.dart' show CodegenWorldBuilder;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'code_emitter_task.dart' show CodeEmitterTask;
import 'model.dart';
class NativeEmitter {
final CodeEmitterTask _emitterTask;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final CodegenWorldBuilder _worldBuilder;
final NativeCodegenEnqueuer _nativeCodegenEnqueuer;
diff --git a/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
index 187729f..4b173c6 100644
--- a/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
@@ -18,7 +18,7 @@
import '../universe/selector.dart' show Selector;
import '../universe/world_builder.dart'
show CodegenWorldBuilder, SelectorConstraints;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'model.dart';
@@ -33,7 +33,7 @@
final NativeData _nativeData;
final InterceptorData _interceptorData;
final CodegenWorldBuilder _codegenWorldBuilder;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final SourceInformationStrategy _sourceInformationStrategy;
ParameterStubGenerator(
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
index 615835e..4b4b1c4 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
@@ -23,7 +23,7 @@
final NativeData _nativeData;
final InterceptorData _interceptorData;
final OneShotInterceptorData _oneShotInterceptorData;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final Set<ClassEntity> _rtiNeededClasses;
final Map<MemberEntity, js.Expression> _generatedCode;
final Sorter _sorter;
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart b/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart
index 7415a08..440fecd 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart
@@ -32,7 +32,7 @@
final CodegenWorldBuilder _codegenWorldBuilder;
final NativeData _nativeData;
final Namer _namer;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
FieldVisitor(
this._options,
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
index 905c3bd..22ca61f 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
@@ -36,7 +36,7 @@
import '../../universe/selector.dart' show Selector;
import '../../universe/world_builder.dart'
show CodegenWorldBuilder, SelectorConstraints;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import '../js_emitter.dart'
show
ClassStubGenerator,
@@ -82,7 +82,7 @@
final Map<MemberEntity, js.Expression> _generatedCode;
final Namer _namer;
final CodeEmitterTask _task;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final SourceInformationStrategy _sourceInformationStrategy;
/// The [Sorter] used for ordering elements in the generated JavaScript.
diff --git a/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
index 29fb797..0e3e5a4 100644
--- a/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
@@ -14,7 +14,7 @@
import '../../elements/entities.dart';
import '../../js/js.dart' as js;
import '../../js_backend/js_backend.dart' show JavaScriptBackend, Namer;
-import '../../world.dart' show ClosedWorld;
+import '../../world.dart' show JClosedWorld;
import '../js_emitter.dart' show CodeEmitterTask, NativeEmitter;
import '../js_emitter.dart' as emitterTask show EmitterBase, EmitterFactory;
import '../model.dart';
@@ -32,7 +32,7 @@
@override
Emitter createEmitter(CodeEmitterTask task, Namer namer,
- ClosedWorld closedWorld, Sorter sorter) {
+ JClosedWorld closedWorld, Sorter sorter) {
return new Emitter(task.compiler, namer, task.nativeEmitter, closedWorld,
sorter, task, generateSourceMap);
}
@@ -40,7 +40,7 @@
class Emitter extends emitterTask.EmitterBase {
final Compiler _compiler;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final Namer namer;
final ModelEmitter _emitter;
diff --git a/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
index 7f655d1..72ea813 100644
--- a/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
@@ -534,7 +534,7 @@
final JavaScriptBackend backend;
final ConstantEmitter constantEmitter;
final ModelEmitter modelEmitter;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
FragmentEmitter(this.compiler, this.namer, this.backend, this.constantEmitter,
this.modelEmitter, this._closedWorld);
diff --git a/pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart
index 9c3beac..f57321e 100644
--- a/pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart
@@ -57,7 +57,7 @@
ConstantEmitter constantEmitter;
final NativeEmitter nativeEmitter;
final bool shouldGenerateSourceMap;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final ConstantOrdering _constantOrdering;
// The full code that is written to each hunk part-file.
diff --git a/pkg/compiler/lib/src/js_model/closure.dart b/pkg/compiler/lib/src/js_model/closure.dart
index 9334b52..b1c32aa 100644
--- a/pkg/compiler/lib/src/js_model/closure.dart
+++ b/pkg/compiler/lib/src/js_model/closure.dart
@@ -17,7 +17,6 @@
import '../options.dart';
import '../ssa/type_builder.dart';
import '../universe/selector.dart';
-import '../world.dart';
import 'elements.dart';
import 'closure_visitors.dart';
import 'locals.dart';
@@ -99,16 +98,6 @@
Measurer measurer, this._elementMap, this._globalLocalsMap, this._options)
: super(measurer);
- /// The combined steps of generating our intermediate representation of
- /// closures that need to be rewritten and generating the element model.
- /// Ultimately these two steps will be split apart with the second step
- /// happening later in compilation just before codegen. These steps are
- /// combined here currently to provide a consistent interface to the rest of
- /// the compiler until we are ready to separate these phases.
- @override
- void convertClosures(Iterable<MemberEntity> processedEntities,
- ClosedWorldRefiner closedWorldRefiner) {}
-
void _updateScopeBasedOnRtiNeed(KernelScopeInfo scope, ClosureRtiNeed rtiNeed,
MemberEntity outermostEntity) {
bool includeForRti(Set<VariableUse> useSet) {
diff --git a/pkg/compiler/lib/src/js_model/js_strategy.dart b/pkg/compiler/lib/src/js_model/js_strategy.dart
index cd8b00f..fac95b8 100644
--- a/pkg/compiler/lib/src/js_model/js_strategy.dart
+++ b/pkg/compiler/lib/src/js_model/js_strategy.dart
@@ -69,7 +69,7 @@
GlobalLocalsMap get globalLocalsMapForTesting => _globalLocalsMap;
@override
- ClosedWorldRefiner createClosedWorldRefiner(KClosedWorld closedWorld) {
+ JClosedWorld createJClosedWorld(KClosedWorld closedWorld) {
KernelFrontEndStrategy strategy = _compiler.frontendStrategy;
_elementMap = new JsKernelToElementMap(
_compiler.reporter,
@@ -191,14 +191,14 @@
}
@override
- WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) {
+ WorkItemBuilder createCodegenWorkItemBuilder(JClosedWorld closedWorld) {
return new KernelCodegenWorkItemBuilder(_compiler.backend, closedWorld);
}
@override
CodegenWorldBuilder createCodegenWorldBuilder(
NativeBasicData nativeBasicData,
- ClosedWorld closedWorld,
+ JClosedWorld closedWorld,
SelectorConstraintsStrategy selectorConstraintsStrategy) {
return new KernelCodegenWorldBuilder(
elementMap,
@@ -215,10 +215,10 @@
}
@override
- TypesInferrer createTypesInferrer(ClosedWorldRefiner closedWorldRefiner,
+ TypesInferrer createTypesInferrer(JClosedWorld closedWorld,
{bool disableTypeInference: false}) {
return new KernelTypeGraphInferrer(_compiler, _elementMap, _globalLocalsMap,
- _closureDataLookup, closedWorldRefiner.closedWorld, closedWorldRefiner,
+ _closureDataLookup, closedWorld,
disableTypeInference: disableTypeInference);
}
}
@@ -651,9 +651,6 @@
}
@override
- ClosedWorld get closedWorld => this;
-
- @override
AbstractValueDomain get abstractValueDomain {
return _abstractValueDomain;
}
diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
index 7c90a63..a293039 100644
--- a/pkg/compiler/lib/src/kernel/element_map.dart
+++ b/pkg/compiler/lib/src/kernel/element_map.dart
@@ -418,7 +418,7 @@
/// Returns the returned type annotation in the [nativeBehavior].
AbstractValue typeFromNativeBehavior(
- native.NativeBehavior nativeBehavior, ClosedWorld closedWorld);
+ native.NativeBehavior nativeBehavior, JClosedWorld closedWorld);
}
/// Map from kernel IR nodes to local entities.
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index 0029cf4..f6812f4 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -2130,7 +2130,7 @@
/// of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassHierarchyNode getClassHierarchyNode(ClassEntity cls) {
return _classHierarchyNodes[cls];
}
@@ -2139,7 +2139,7 @@
/// relations of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassSet getClassSet(ClassEntity cls) {
return _classSets[cls];
}
diff --git a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
index f3b7c59..b77533f 100644
--- a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
@@ -43,7 +43,7 @@
class KernelCodegenWorkItemBuilder implements WorkItemBuilder {
final JavaScriptBackend _backend;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
KernelCodegenWorkItemBuilder(this._backend, this._closedWorld);
@@ -67,7 +67,7 @@
class KernelCodegenWorkItem extends CodegenWorkItem {
final JavaScriptBackend _backend;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final MemberEntity element;
final CodegenRegistry registry;
@@ -92,7 +92,7 @@
this.task, this._compiler, this._elementMap, this._globalLocalsMap);
@override
- HGraph build(CodegenWorkItem work, ClosedWorld closedWorld) {
+ HGraph build(CodegenWorkItem work, JClosedWorld closedWorld) {
return task.measure(() {
KernelSsaGraphBuilder builder = new KernelSsaGraphBuilder(
work.element,
@@ -193,7 +193,7 @@
}
AbstractValue typeFromNativeBehavior(
- NativeBehavior nativeBehavior, ClosedWorld closedWorld) {
+ NativeBehavior nativeBehavior, JClosedWorld closedWorld) {
return AbstractValueFactory.fromNativeBehavior(nativeBehavior, closedWorld);
}
}
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 4868207..aed9b6c 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -69,7 +69,7 @@
final MemberEntity targetElement;
final MemberEntity initialTargetElement;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final CodegenWorldBuilder _worldBuilder;
final CodegenRegistry registry;
final ClosureDataLookup closureDataLookup;
diff --git a/pkg/compiler/lib/src/ssa/codegen.dart b/pkg/compiler/lib/src/ssa/codegen.dart
index 671f01b..3d08315 100644
--- a/pkg/compiler/lib/src/ssa/codegen.dart
+++ b/pkg/compiler/lib/src/ssa/codegen.dart
@@ -33,7 +33,7 @@
import '../universe/selector.dart' show Selector;
import '../universe/use.dart'
show ConstantUse, ConstrainedDynamicUse, StaticUse, TypeUse;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'codegen_helpers.dart';
import 'nodes.dart';
import 'variable_allocator.dart';
@@ -71,7 +71,7 @@
}
js.Expression generateCode(
- CodegenWorkItem work, HGraph graph, ClosedWorld closedWorld) {
+ CodegenWorkItem work, HGraph graph, JClosedWorld closedWorld) {
if (work.element.isField) {
return generateLazyInitializer(work, graph, closedWorld);
} else {
@@ -80,7 +80,7 @@
}
js.Expression generateLazyInitializer(
- CodegenWorkItem work, HGraph graph, ClosedWorld closedWorld) {
+ CodegenWorkItem work, HGraph graph, JClosedWorld closedWorld) {
return measure(() {
backend.tracer.traceGraph("codegen", graph);
SourceInformation sourceInformation = sourceInformationFactory
@@ -105,7 +105,7 @@
}
js.Expression generateMethod(
- CodegenWorkItem work, HGraph graph, ClosedWorld closedWorld) {
+ CodegenWorkItem work, HGraph graph, JClosedWorld closedWorld) {
return measure(() {
FunctionEntity element = work.element;
if (element.asyncMarker != AsyncMarker.SYNC) {
@@ -163,7 +163,7 @@
final RuntimeTypesEncoder _rtiEncoder;
final Namer _namer;
final SuperMemberData _superMemberData;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final CodegenWorkItem _work;
final Set<HInstruction> generateAtUseSite;
diff --git a/pkg/compiler/lib/src/ssa/codegen_helpers.dart b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
index d3905d1..ca08263 100644
--- a/pkg/compiler/lib/src/ssa/codegen_helpers.dart
+++ b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
@@ -9,7 +9,7 @@
import '../options.dart';
import '../types/abstract_value_domain.dart';
import '../universe/selector.dart' show Selector;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'nodes.dart';
/**
@@ -17,7 +17,7 @@
* Caches codegen information on nodes.
*/
class SsaInstructionSelection extends HBaseVisitor {
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final InterceptorData _interceptorData;
HGraph graph;
diff --git a/pkg/compiler/lib/src/ssa/graph_builder.dart b/pkg/compiler/lib/src/ssa/graph_builder.dart
index 2a6830c..e67eeb4 100644
--- a/pkg/compiler/lib/src/ssa/graph_builder.dart
+++ b/pkg/compiler/lib/src/ssa/graph_builder.dart
@@ -25,7 +25,7 @@
import '../options.dart';
import '../types/abstract_value_domain.dart';
import '../types/types.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'jump_handler.dart';
import 'locals_handler.dart';
import 'nodes.dart';
@@ -53,7 +53,7 @@
CodegenRegistry get registry;
- ClosedWorld get closedWorld;
+ JClosedWorld get closedWorld;
AbstractValueDomain get abstractValueDomain =>
closedWorld.abstractValueDomain;
diff --git a/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart b/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
index 6d297c5..a9be144 100644
--- a/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
+++ b/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
@@ -8,7 +8,7 @@
import '../js_backend/interceptor_data.dart';
import '../types/abstract_value_domain.dart';
import '../universe/selector.dart' show Selector;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'nodes.dart';
import 'optimize.dart';
@@ -35,7 +35,7 @@
class SsaSimplifyInterceptors extends HBaseVisitor
implements OptimizationPhase {
final String name = "SsaSimplifyInterceptors";
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final ClassEntity _enclosingClass;
HGraph _graph;
diff --git a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
index 5801f3f..43e9c67 100644
--- a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
+++ b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
@@ -12,7 +12,7 @@
import '../types/types.dart';
import '../universe/call_structure.dart';
import '../universe/selector.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'nodes.dart';
import 'types.dart';
@@ -29,7 +29,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return AbstractValueFactory.inferredTypeForSelector(
instruction.selector, instruction.mask, results);
}
@@ -40,7 +40,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return null;
}
@@ -122,7 +122,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction receiver = instruction.inputs[1];
HInstruction index = instruction.inputs[2];
if (!receiver.isMutableIndexable(closedWorld.abstractValueDomain))
@@ -151,7 +151,7 @@
HInstruction receiver,
HInstruction value,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
// Handle typed arrays by recognizing the exact implementation of `[]=` and
// checking if [value] has the appropriate type.
if (instruction.element != null) {
@@ -184,7 +184,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (!instruction.inputs[1]
.isIndexablePrimitive(closedWorld.abstractValueDomain)) return null;
if (!instruction.inputs[2].isInteger(closedWorld.abstractValueDomain) &&
@@ -212,7 +212,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
// All bitwise operations on primitive types either produce an
// integer or throw an error.
if (instruction.inputs[1]
@@ -229,7 +229,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction input = instruction.inputs[1];
if (input.isNumber(closedWorld.abstractValueDomain)) {
return new HBitNot(
@@ -253,7 +253,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction operand = instruction.inputs[1];
if (operand.isNumberOrNull(closedWorld.abstractValueDomain)) {
// We have integer subclasses that represent ranges, so widen any int
@@ -276,7 +276,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction input = instruction.inputs[1];
if (input.isNumber(closedWorld.abstractValueDomain)) {
return new HNegate(
@@ -300,7 +300,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction input = instruction.inputs[1];
if (input.isNumberOrNull(closedWorld.abstractValueDomain)) {
return closedWorld.abstractValueDomain.excludeNull(input.instructionType);
@@ -315,7 +315,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction input = instruction.inputs[1];
if (input.isNumber(closedWorld.abstractValueDomain)) {
return new HAbs(
@@ -335,7 +335,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isIntegerOrNull(closedWorld.abstractValueDomain) &&
@@ -353,7 +353,7 @@
.computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
- bool isBuiltin(HInvokeDynamic instruction, ClosedWorld closedWorld) {
+ bool isBuiltin(HInvokeDynamic instruction, JClosedWorld closedWorld) {
return instruction.inputs[1].isNumber(closedWorld.abstractValueDomain) &&
instruction.inputs[2].isNumber(closedWorld.abstractValueDomain);
}
@@ -364,7 +364,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (isBuiltin(instruction, closedWorld)) {
HInstruction builtin =
newBuiltinVariant(instruction, results, options, closedWorld);
@@ -378,14 +378,14 @@
}
bool inputsArePositiveIntegers(
- HInstruction instruction, ClosedWorld closedWorld) {
+ HInstruction instruction, JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
return left.isPositiveIntegerOrNull(closedWorld.abstractValueDomain) &&
right.isPositiveIntegerOrNull(closedWorld.abstractValueDomain);
}
- bool inputsAreUInt31(HInstruction instruction, ClosedWorld closedWorld) {
+ bool inputsAreUInt31(HInstruction instruction, JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
return left.isUInt31(closedWorld.abstractValueDomain) &&
@@ -396,7 +396,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld);
+ JClosedWorld closedWorld);
}
class AddSpecializer extends BinaryArithmeticSpecializer {
@@ -406,7 +406,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (inputsAreUInt31(instruction, closedWorld)) {
return closedWorld.abstractValueDomain.uint32Type;
}
@@ -425,7 +425,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HAdd(
instruction.inputs[1],
instruction.inputs[2],
@@ -445,7 +445,7 @@
HInstruction instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
if (left.isNumberOrNull(closedWorld.abstractValueDomain)) {
return closedWorld.abstractValueDomain.doubleType;
@@ -458,7 +458,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HDivide(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.abstractValueDomain.doubleType);
}
@@ -471,7 +471,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.abstractValueDomain.positiveIntType;
}
@@ -487,7 +487,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
// Modulo cannot be mapped to the native operator (different semantics).
// We can use HRemainder if both inputs are non-negative and the receiver
@@ -557,7 +557,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.abstractValueDomain.positiveIntType;
}
@@ -573,7 +573,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HRemainder(
instruction.inputs[1],
instruction.inputs[2],
@@ -593,7 +593,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.abstractValueDomain.positiveIntType;
}
@@ -605,7 +605,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HMultiply(
instruction.inputs[1],
instruction.inputs[2],
@@ -625,7 +625,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HSubtract(
instruction.inputs[1],
instruction.inputs[2],
@@ -645,7 +645,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (hasUint31Result(instruction, closedWorld)) {
return closedWorld.abstractValueDomain.uint31Type;
}
@@ -672,7 +672,7 @@
return count >= BigInt.two;
}
- bool hasUint31Result(HInstruction instruction, ClosedWorld closedWorld) {
+ bool hasUint31Result(HInstruction instruction, JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (right.isPositiveInteger(closedWorld.abstractValueDomain)) {
@@ -693,7 +693,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction right = instruction.inputs[2];
if (isBuiltin(instruction, closedWorld)) {
if (right.isPositiveInteger(closedWorld.abstractValueDomain) &&
@@ -715,7 +715,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HTruncatingDivide(
instruction.inputs[1],
instruction.inputs[2],
@@ -731,7 +731,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
// All bitwise operations on primitive types either produce an
// integer or throw an error.
HInstruction left = instruction.inputs[1];
@@ -764,7 +764,7 @@
return false;
}
- bool isPositive(HInstruction instruction, ClosedWorld closedWorld) {
+ bool isPositive(HInstruction instruction, JClosedWorld closedWorld) {
// TODO: We should use the value range analysis. Currently, ranges
// are discarded just after the analysis.
return instruction.isPositiveInteger(closedWorld.abstractValueDomain);
@@ -784,7 +784,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isNumber(closedWorld.abstractValueDomain)) {
@@ -807,7 +807,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HShiftLeft(
instruction.inputs[1],
instruction.inputs[2],
@@ -823,7 +823,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
if (left.isUInt32(closedWorld.abstractValueDomain))
return left.instructionType;
@@ -837,7 +837,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isNumber(closedWorld.abstractValueDomain)) {
@@ -867,7 +867,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HShiftRight(
instruction.inputs[1],
instruction.inputs[2],
@@ -891,7 +891,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isUInt31(closedWorld.abstractValueDomain) &&
@@ -906,7 +906,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HBitOr(
instruction.inputs[1],
instruction.inputs[2],
@@ -926,7 +926,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isPrimitiveOrNull(closedWorld.abstractValueDomain) &&
@@ -942,7 +942,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HBitAnd(
instruction.inputs[1],
instruction.inputs[2],
@@ -962,7 +962,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isUInt31(closedWorld.abstractValueDomain) &&
@@ -977,7 +977,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
return new HBitXor(
instruction.inputs[1],
instruction.inputs[2],
@@ -993,7 +993,7 @@
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
if (instruction.inputs[1]
.isPrimitiveOrNull(closedWorld.abstractValueDomain)) {
return closedWorld.abstractValueDomain.boolType;
@@ -1008,7 +1008,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isNumber(closedWorld.abstractValueDomain) &&
@@ -1019,7 +1019,7 @@
}
HInstruction newBuiltinVariant(
- HInvokeDynamic instruction, ClosedWorld closedWorld);
+ HInvokeDynamic instruction, JClosedWorld closedWorld);
}
class EqualsSpecializer extends RelationalSpecializer {
@@ -1031,7 +1031,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
AbstractValue instructionType = left.instructionType;
@@ -1060,7 +1060,7 @@
}
HInstruction newBuiltinVariant(
- HInvokeDynamic instruction, ClosedWorld closedWorld) {
+ HInvokeDynamic instruction, JClosedWorld closedWorld) {
return new HIdentity(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.abstractValueDomain.boolType);
}
@@ -1074,7 +1074,7 @@
}
HInstruction newBuiltinVariant(
- HInvokeDynamic instruction, ClosedWorld closedWorld) {
+ HInvokeDynamic instruction, JClosedWorld closedWorld) {
return new HLess(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.abstractValueDomain.boolType);
}
@@ -1088,7 +1088,7 @@
}
HInstruction newBuiltinVariant(
- HInvokeDynamic instruction, ClosedWorld closedWorld) {
+ HInvokeDynamic instruction, JClosedWorld closedWorld) {
return new HGreater(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.abstractValueDomain.boolType);
}
@@ -1102,7 +1102,7 @@
}
HInstruction newBuiltinVariant(
- HInvokeDynamic instruction, ClosedWorld closedWorld) {
+ HInvokeDynamic instruction, JClosedWorld closedWorld) {
return new HGreaterEqual(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.abstractValueDomain.boolType);
}
@@ -1116,7 +1116,7 @@
}
HInstruction newBuiltinVariant(
- HInvokeDynamic instruction, ClosedWorld closedWorld) {
+ HInvokeDynamic instruction, JClosedWorld closedWorld) {
return new HLessEqual(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.abstractValueDomain.boolType);
}
@@ -1135,7 +1135,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
// TODO(sra): Implement a builtin HCodeUnitAt instruction and the same index
// bounds checking optimizations as for HIndex.
HInstruction receiver = instruction.getDartReceiver(closedWorld);
@@ -1163,7 +1163,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
// `compareTo` has no side-effect (other than throwing) and can be GVN'ed
// for some known types.
@@ -1195,7 +1195,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
if (receiver.isStringOrNull(closedWorld.abstractValueDomain)) {
// String.xxx does not have any side effect (other than throwing), and it
@@ -1223,7 +1223,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
HInstruction pattern = instruction.inputs[2];
if (receiver.isStringOrNull(closedWorld.abstractValueDomain) &&
@@ -1249,7 +1249,7 @@
GlobalTypeInferenceResults results,
CompilerOptions options,
CommonElements commonElements,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
if (receiver.isNumberOrNull(closedWorld.abstractValueDomain)) {
// Even if there is no builtin equivalent instruction, we know the
diff --git a/pkg/compiler/lib/src/ssa/locals_handler.dart b/pkg/compiler/lib/src/ssa/locals_handler.dart
index 1bfef1f..f0a914c 100644
--- a/pkg/compiler/lib/src/ssa/locals_handler.dart
+++ b/pkg/compiler/lib/src/ssa/locals_handler.dart
@@ -13,7 +13,7 @@
import '../js_model/locals.dart' show JLocal;
import '../types/abstract_value_domain.dart';
import '../types/types.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'graph_builder.dart';
import 'nodes.dart';
@@ -65,7 +65,7 @@
LocalsHandler(this.builder, this.executableContext, this.memberContext,
this.instanceType, this._nativeData, this._interceptorData);
- ClosedWorld get closedWorld => builder.closedWorld;
+ JClosedWorld get closedWorld => builder.closedWorld;
AbstractValueDomain get _abstractValueDomain =>
closedWorld.abstractValueDomain;
diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart
index d2ded3a..59ac3b2 100644
--- a/pkg/compiler/lib/src/ssa/nodes.dart
+++ b/pkg/compiler/lib/src/ssa/nodes.dart
@@ -21,7 +21,7 @@
import '../universe/selector.dart' show Selector;
import '../universe/side_effects.dart' show SideEffects;
import '../util/util.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'invoke_dynamic_specializers.dart';
import 'validate.dart';
@@ -262,7 +262,7 @@
return result;
}
- HConstant addConstant(ConstantValue constant, ClosedWorld closedWorld,
+ HConstant addConstant(ConstantValue constant, JClosedWorld closedWorld,
{SourceInformation sourceInformation}) {
HConstant result = constants[constant];
// TODO(johnniwinther): Support source information per constant reference.
@@ -289,44 +289,44 @@
OutputUnit unit,
SourceInformation sourceInformation,
Compiler compiler,
- ClosedWorld closedWorld) {
+ JClosedWorld closedWorld) {
ConstantValue wrapper = new DeferredGlobalConstantValue(constant, unit);
compiler.backend.outputUnitData.registerConstantDeferredUse(wrapper, unit);
return addConstant(wrapper, closedWorld,
sourceInformation: sourceInformation);
}
- HConstant addConstantInt(int i, ClosedWorld closedWorld) {
+ HConstant addConstantInt(int i, JClosedWorld closedWorld) {
return addConstant(
closedWorld.constantSystem.createIntFromInt(i), closedWorld);
}
- HConstant addConstantDouble(double d, ClosedWorld closedWorld) {
+ HConstant addConstantDouble(double d, JClosedWorld closedWorld) {
return addConstant(closedWorld.constantSystem.createDouble(d), closedWorld);
}
- HConstant addConstantString(String str, ClosedWorld closedWorld) {
+ HConstant addConstantString(String str, JClosedWorld closedWorld) {
return addConstant(
closedWorld.constantSystem.createString(str), closedWorld);
}
- HConstant addConstantStringFromName(js.Name name, ClosedWorld closedWorld) {
+ HConstant addConstantStringFromName(js.Name name, JClosedWorld closedWorld) {
return addConstant(
new SyntheticConstantValue(
SyntheticConstantKind.NAME, js.quoteName(name)),
closedWorld);
}
- HConstant addConstantBool(bool value, ClosedWorld closedWorld) {
+ HConstant addConstantBool(bool value, JClosedWorld closedWorld) {
return addConstant(
closedWorld.constantSystem.createBool(value), closedWorld);
}
- HConstant addConstantNull(ClosedWorld closedWorld) {
+ HConstant addConstantNull(JClosedWorld closedWorld) {
return addConstant(closedWorld.constantSystem.createNull(), closedWorld);
}
- HConstant addConstantUnreachable(ClosedWorld closedWorld) {
+ HConstant addConstantUnreachable(JClosedWorld closedWorld) {
// A constant with an empty type used as the HInstruction of an expression
// in an unreachable context.
return addConstant(
@@ -1102,7 +1102,7 @@
AbstractValue instructionType;
Selector get selector => null;
- HInstruction getDartReceiver(ClosedWorld closedWorld) => null;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => null;
bool onlyThrowsNSM() => false;
bool isInBasicBlock() => block != null;
@@ -1234,7 +1234,7 @@
bool isConstantFalse() => false;
bool isConstantTrue() => false;
- bool isInterceptor(ClosedWorld closedWorld) => false;
+ bool isInterceptor(JClosedWorld closedWorld) => false;
bool isValid() {
HValidator validator = new HValidator();
@@ -1260,7 +1260,7 @@
return false;
}
- HInstruction convertType(ClosedWorld closedWorld, DartType type, int kind) {
+ HInstruction convertType(JClosedWorld closedWorld, DartType type, int kind) {
if (type == null) return this;
type = type.unaliased;
// Only the builder knows how to create [HTypeConversion]
@@ -1443,7 +1443,7 @@
HInstruction get value => inputs[0];
@override
- HInstruction convertType(ClosedWorld closedWorld, DartType type, int kind) {
+ HInstruction convertType(JClosedWorld closedWorld, DartType type, int kind) {
HInstruction converted = value.convertType(closedWorld, type, kind);
if (converted == value) return this;
HTypeConversion conversion = converted;
@@ -1628,7 +1628,7 @@
}
toString() => 'invoke dynamic: selector=$selector, mask=$mask';
HInstruction get receiver => inputs[0];
- HInstruction getDartReceiver(ClosedWorld closedWorld) {
+ HInstruction getDartReceiver(JClosedWorld closedWorld) {
return isCallOnInterceptor(closedWorld) ? inputs[1] : inputs[0];
}
@@ -1638,7 +1638,7 @@
/**
* Returns whether this call is on an interceptor object.
*/
- bool isCallOnInterceptor(ClosedWorld closedWorld) {
+ bool isCallOnInterceptor(JClosedWorld closedWorld) {
return isInterceptedCall && receiver.isInterceptor(closedWorld);
}
@@ -1797,14 +1797,14 @@
}
HInstruction get receiver => inputs[0];
- HInstruction getDartReceiver(ClosedWorld closedWorld) {
+ HInstruction getDartReceiver(JClosedWorld closedWorld) {
return isCallOnInterceptor(closedWorld) ? inputs[1] : inputs[0];
}
/**
* Returns whether this call is on an interceptor object.
*/
- bool isCallOnInterceptor(ClosedWorld closedWorld) {
+ bool isCallOnInterceptor(JClosedWorld closedWorld) {
return isInterceptedCall && receiver.isInterceptor(closedWorld);
}
@@ -1879,7 +1879,7 @@
}
}
- bool isInterceptor(ClosedWorld closedWorld) {
+ bool isInterceptor(JClosedWorld closedWorld) {
if (sourceElement == null) return false;
// In case of a closure inside an interceptor class, [:this:] is
// stored in the generated closure class, and accessed through a
@@ -1894,7 +1894,7 @@
bool canThrow(AbstractValueDomain domain) => receiver.canBeNull(domain);
- HInstruction getDartReceiver(ClosedWorld closedWorld) => receiver;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => receiver;
bool onlyThrowsNSM() => true;
bool get isNullCheck => element == null;
@@ -1917,7 +1917,7 @@
bool canThrow(AbstractValueDomain domain) => receiver.canBeNull(domain);
- HInstruction getDartReceiver(ClosedWorld closedWorld) => receiver;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => receiver;
bool onlyThrowsNSM() => true;
HInstruction get value => inputs[1];
@@ -1945,7 +1945,7 @@
bool canThrow(AbstractValueDomain domain) => receiver.canBeNull(domain);
- HInstruction getDartReceiver(ClosedWorld closedWorld) => receiver;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => receiver;
bool onlyThrowsNSM() => true;
accept(HVisitor visitor) => visitor.visitGetLength(this);
@@ -1998,7 +1998,7 @@
bool canThrow(AbstractValueDomain domain) => receiver.canBeNull(domain);
- HInstruction getDartReceiver(ClosedWorld closedWorld) => receiver;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => receiver;
bool onlyThrowsNSM() => true;
HInstruction get value => inputs[1];
@@ -2510,7 +2510,7 @@
bool isConstantFalse() => constant.isFalse;
bool isConstantTrue() => constant.isTrue;
- bool isInterceptor(ClosedWorld closedWorld) => constant.isInterceptor;
+ bool isInterceptor(JClosedWorld closedWorld) => constant.isInterceptor;
// Maybe avoid this if the literal is big?
bool isCodeMotionInvariant() => true;
@@ -2581,7 +2581,7 @@
bool isCodeMotionInvariant() => true;
- bool isInterceptor(ClosedWorld closedWorld) {
+ bool isInterceptor(JClosedWorld closedWorld) {
return closedWorld.interceptorData
.isInterceptedClass(sourceElement.enclosingClass);
}
@@ -2797,7 +2797,7 @@
inputs.add(constant);
}
- bool isInterceptor(ClosedWorld closedWorld) => true;
+ bool isInterceptor(JClosedWorld closedWorld) => true;
int typeCode() => HInstruction.INTERCEPTOR_TYPECODE;
bool typeEquals(other) => other is HInterceptor;
@@ -2833,7 +2833,7 @@
assert(inputs[0].isNull(domain));
assert(selector.callStructure.typeArgumentCount == typeArguments.length);
}
- bool isCallOnInterceptor(ClosedWorld closedWorld) => true;
+ bool isCallOnInterceptor(JClosedWorld closedWorld) => true;
String toString() => 'one shot interceptor: selector=$selector, mask=$mask';
accept(HVisitor visitor) => visitor.visitOneShotInterceptor(this);
@@ -2913,7 +2913,7 @@
// TODO(27272): Make HIndex dependent on bounds checking.
bool get isMovable => false;
- HInstruction getDartReceiver(ClosedWorld closedWorld) => receiver;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => receiver;
bool onlyThrowsNSM() => true;
bool canThrow(AbstractValueDomain domain) => receiver.canBeNull(domain);
@@ -2946,7 +2946,7 @@
// TODO(27272): Make HIndex dependent on bounds checking.
bool get isMovable => false;
- HInstruction getDartReceiver(ClosedWorld closedWorld) => receiver;
+ HInstruction getDartReceiver(JClosedWorld closedWorld) => receiver;
bool onlyThrowsNSM() => true;
bool canThrow(AbstractValueDomain domain) => receiver.canBeNull(domain);
}
@@ -3134,7 +3134,7 @@
HInstruction get checkedInput => super.checkedInput;
- HInstruction convertType(ClosedWorld closedWorld, DartType type, int kind) {
+ HInstruction convertType(JClosedWorld closedWorld, DartType type, int kind) {
if (typeExpression == type) {
// Don't omit a boolean conversion (which doesn't allow `null`) unless
// this type conversion is already a boolean conversion.
@@ -3170,7 +3170,7 @@
receiverTypeCheckSelector == other.receiverTypeCheckSelector;
}
- bool isRedundant(ClosedWorld closedWorld) {
+ bool isRedundant(JClosedWorld closedWorld) {
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
DartType type = typeExpression;
if (type != null) {
@@ -3248,7 +3248,7 @@
instructionType == other.instructionType;
}
- bool isRedundant(ClosedWorld closedWorld) {
+ bool isRedundant(JClosedWorld closedWorld) {
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
if (abstractValueDomain.containsAll(knownType)) return false;
AbstractValue inputType = checkedInput.instructionType;
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index 3c3d569..f8313e8 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -23,7 +23,7 @@
import '../universe/side_effects.dart' show SideEffects;
import '../universe/use.dart' show StaticUse;
import '../util/util.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'interceptor_simplifier.dart';
import 'nodes.dart';
import 'types.dart';
@@ -53,7 +53,7 @@
RuntimeTypesSubstitutions get _rtiSubstitutions => _backend.rtiSubstitutions;
- void optimize(CodegenWorkItem work, HGraph graph, ClosedWorld closedWorld) {
+ void optimize(CodegenWorkItem work, HGraph graph, JClosedWorld closedWorld) {
void runPhase(OptimizationPhase phase) {
measureSubtask(phase.name, () => phase.visitGraph(graph));
_backend.tracer.traceGraph(phase.name, graph);
@@ -155,7 +155,7 @@
/// cannot change. The current implementation is conservative for the purpose
/// of identifying gvn-able lengths and mis-identifies some unions of fixed
/// length indexables (see TODO) as not fixed length.
-bool isFixedLength(mask, ClosedWorld closedWorld) {
+bool isFixedLength(mask, JClosedWorld closedWorld) {
if (mask.isContainer && mask.length != null) {
// A container on which we have inferred the length.
return true;
@@ -185,7 +185,7 @@
final GlobalTypeInferenceResults _globalInferenceResults;
final CompilerOptions _options;
final RuntimeTypesSubstitutions _rtiSubstitutions;
- final ClosedWorld _closedWorld;
+ final JClosedWorld _closedWorld;
final CodegenRegistry _registry;
HGraph _graph;
@@ -1502,7 +1502,7 @@
class SsaCheckInserter extends HBaseVisitor implements OptimizationPhase {
final Set<HInstruction> boundsChecked;
final bool trustPrimitives;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final String name = "SsaCheckInserter";
HGraph graph;
@@ -1588,7 +1588,7 @@
class SsaDeadCodeEliminator extends HGraphVisitor implements OptimizationPhase {
final String name = "SsaDeadCodeEliminator";
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final SsaOptimizerTask optimizer;
HGraph _graph;
SsaLiveBlockAnalyzer analyzer;
@@ -1934,7 +1934,7 @@
final Set<HBasicBlock> live = new Set<HBasicBlock>();
final List<HBasicBlock> worklist = <HBasicBlock>[];
final SsaOptimizerTask optimizer;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
SsaLiveBlockAnalyzer(this.graph, this.closedWorld, this.optimizer);
@@ -2442,7 +2442,7 @@
class SsaTypeConversionInserter extends HBaseVisitor
implements OptimizationPhase {
final String name = "SsaTypeconversionInserter";
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
SsaTypeConversionInserter(this.closedWorld);
@@ -2585,7 +2585,7 @@
*/
class SsaLoadElimination extends HBaseVisitor implements OptimizationPhase {
final Compiler compiler;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final String name = "SsaLoadElimination";
MemorySet memorySet;
List<MemorySet> memories;
@@ -2843,7 +2843,7 @@
/// confuse aliasing. Values stored into a memory place keep the type
/// refinements to help further optimizations.
class MemorySet {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
/// Maps a field to a map of receivers to their current field values.
///
diff --git a/pkg/compiler/lib/src/ssa/ssa.dart b/pkg/compiler/lib/src/ssa/ssa.dart
index f757a85..c006997 100644
--- a/pkg/compiler/lib/src/ssa/ssa.dart
+++ b/pkg/compiler/lib/src/ssa/ssa.dart
@@ -13,7 +13,7 @@
import '../js_backend/backend.dart' show JavaScriptBackend, FunctionCompiler;
import '../universe/call_structure.dart';
import '../universe/use.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'codegen.dart';
import 'nodes.dart';
@@ -38,7 +38,7 @@
/// Generates JavaScript code for `work.element`.
/// Using the ssa builder, optimizer and codegenerator.
- js.Fun compile(CodegenWorkItem work, ClosedWorld closedWorld) {
+ js.Fun compile(CodegenWorkItem work, JClosedWorld closedWorld) {
HGraph graph = _builder.build(work, closedWorld);
if (graph == null) return null;
optimizer.optimize(work, graph, closedWorld);
@@ -68,7 +68,7 @@
abstract class SsaBuilder {
/// Creates the [HGraph] for [work] or returns `null` if no code is needed
/// for [work].
- HGraph build(CodegenWorkItem work, ClosedWorld closedWorld);
+ HGraph build(CodegenWorkItem work, JClosedWorld closedWorld);
}
class SsaBuilderTask extends CompilerTask {
@@ -88,7 +88,7 @@
/// Creates the [HGraph] for [work] or returns `null` if no code is needed
/// for [work].
- HGraph build(CodegenWorkItem work, ClosedWorld closedWorld) {
+ HGraph build(CodegenWorkItem work, JClosedWorld closedWorld) {
return _builder.build(work, closedWorld);
}
}
@@ -105,8 +105,8 @@
///
/// If the field is constant, no code is needed for the field and the method
/// returns `true`.
- bool handleConstantField(
- MemberEntity element, CodegenRegistry registry, ClosedWorld closedWorld) {
+ bool handleConstantField(MemberEntity element, CodegenRegistry registry,
+ JClosedWorld closedWorld) {
if (element.isField) {
ConstantValue initialValue = getFieldInitialConstantValue(element);
if (initialValue != null) {
diff --git a/pkg/compiler/lib/src/ssa/ssa_tracer.dart b/pkg/compiler/lib/src/ssa/ssa_tracer.dart
index 413c044..f72cc6b 100644
--- a/pkg/compiler/lib/src/ssa/ssa_tracer.dart
+++ b/pkg/compiler/lib/src/ssa/ssa_tracer.dart
@@ -9,7 +9,7 @@
import '../js_backend/namer.dart' show Namer;
import '../types/abstract_value_domain.dart';
import '../tracer.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'nodes.dart';
/**
@@ -18,7 +18,7 @@
* to enable it.
*/
class HTracer extends HGraphVisitor with TracerUtil {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final Namer namer;
final OutputSink output;
@@ -113,7 +113,7 @@
}
class HInstructionStringifier implements HVisitor<String> {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final Namer namer;
final HBasicBlock currentBlock;
diff --git a/pkg/compiler/lib/src/ssa/types.dart b/pkg/compiler/lib/src/ssa/types.dart
index 6e7ee44..f9b3752 100644
--- a/pkg/compiler/lib/src/ssa/types.dart
+++ b/pkg/compiler/lib/src/ssa/types.dart
@@ -8,7 +8,7 @@
import '../types/abstract_value_domain.dart';
import '../types/types.dart';
import '../universe/selector.dart' show Selector;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
class AbstractValueFactory {
static AbstractValue inferredReturnTypeForElement(
@@ -36,7 +36,7 @@
}
static AbstractValue fromNativeBehavior(
- native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) {
+ native.NativeBehavior nativeBehavior, JClosedWorld closedWorld) {
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
var typesReturned = nativeBehavior.typesReturned;
if (typesReturned.isEmpty) return abstractValueDomain.dynamicType;
diff --git a/pkg/compiler/lib/src/ssa/types_propagation.dart b/pkg/compiler/lib/src/ssa/types_propagation.dart
index 00d06ae..14d25b9 100644
--- a/pkg/compiler/lib/src/ssa/types_propagation.dart
+++ b/pkg/compiler/lib/src/ssa/types_propagation.dart
@@ -8,7 +8,7 @@
import '../types/abstract_value_domain.dart';
import '../types/types.dart';
import '../universe/selector.dart' show Selector;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'nodes.dart';
import 'optimize.dart';
@@ -37,7 +37,7 @@
final GlobalTypeInferenceResults results;
final CompilerOptions options;
final CommonElements commonElements;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
String get name => 'SsaTypePropagator';
SsaTypePropagator(
diff --git a/pkg/compiler/lib/src/ssa/value_range_analyzer.dart b/pkg/compiler/lib/src/ssa/value_range_analyzer.dart
index 71f4e24..0038d5b 100644
--- a/pkg/compiler/lib/src/ssa/value_range_analyzer.dart
+++ b/pkg/compiler/lib/src/ssa/value_range_analyzer.dart
@@ -5,7 +5,7 @@
import '../constant_system_dart.dart';
import '../constants/constant_system.dart';
import '../constants/values.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show JClosedWorld;
import 'nodes.dart';
import 'optimize.dart';
@@ -600,13 +600,13 @@
*/
final Map<HInstruction, Range> ranges = new Map<HInstruction, Range>();
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final ValueRangeInfo info;
final SsaOptimizerTask optimizer;
HGraph graph;
- SsaValueRangeAnalyzer(ClosedWorld closedWorld, this.optimizer)
+ SsaValueRangeAnalyzer(JClosedWorld closedWorld, this.optimizer)
: info = new ValueRangeInfo(closedWorld.constantSystem),
this.closedWorld = closedWorld;
@@ -1064,7 +1064,7 @@
* Tries to find a range for the update instruction of a loop phi.
*/
class LoopUpdateRecognizer extends HBaseVisitor {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final Map<HInstruction, Range> ranges;
final ValueRangeInfo info;
LoopUpdateRecognizer(this.closedWorld, this.ranges, this.info);
diff --git a/pkg/compiler/lib/src/tracer.dart b/pkg/compiler/lib/src/tracer.dart
index cdebb1c..9a8f51c 100644
--- a/pkg/compiler/lib/src/tracer.dart
+++ b/pkg/compiler/lib/src/tracer.dart
@@ -9,7 +9,7 @@
import 'ssa/nodes.dart' as ssa show HGraph;
import 'ssa/ssa_tracer.dart' show HTracer;
import 'util/util.dart' show Indentation;
-import 'world.dart' show ClosedWorld;
+import 'world.dart' show JClosedWorld;
/**
* If non-null, we only trace methods whose name match the regexp defined by the
@@ -27,7 +27,7 @@
* readable by IR Hydra.
*/
class Tracer extends TracerUtil {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final Namer namer;
bool traceActive = false;
final api.OutputSink output;
diff --git a/pkg/compiler/lib/src/types/abstract_value_domain.dart b/pkg/compiler/lib/src/types/abstract_value_domain.dart
index 1cc8e7a..37ff14d 100644
--- a/pkg/compiler/lib/src/types/abstract_value_domain.dart
+++ b/pkg/compiler/lib/src/types/abstract_value_domain.dart
@@ -16,7 +16,7 @@
/// inference.
abstract class AbstractValueStrategy {
/// Creates the abstract value domain for [closedWorld].
- AbstractValueDomain createDomain(ClosedWorld closedWorld);
+ AbstractValueDomain createDomain(JClosedWorld closedWorld);
/// Creates the [SelectorConstraintsStrategy] used by the backend enqueuer.
SelectorConstraintsStrategy createSelectorStrategy();
diff --git a/pkg/compiler/lib/src/types/types.dart b/pkg/compiler/lib/src/types/types.dart
index 704157c..a182ee7 100644
--- a/pkg/compiler/lib/src/types/types.dart
+++ b/pkg/compiler/lib/src/types/types.dart
@@ -10,7 +10,7 @@
import '../elements/entities.dart';
import '../inferrer/type_graph_inferrer.dart' show TypeGraphInferrer;
import '../universe/selector.dart' show Selector;
-import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
+import '../world.dart' show JClosedWorld;
import 'abstract_value_domain.dart';
/// Results about a single element (e.g. a method, parameter, or field)
@@ -188,7 +188,7 @@
abstract class GlobalTypeInferenceResults<T> {
// TODO(sigmund): store relevant data & drop reference to inference engine.
final TypeGraphInferrer<T> _inferrer;
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final Map<MemberEntity, GlobalTypeInferenceMemberResult<T>> _memberResults =
<MemberEntity, GlobalTypeInferenceMemberResult<T>>{};
final Map<Local, GlobalTypeInferenceParameterResult<T>> _parameterResults =
@@ -258,11 +258,11 @@
super(compiler.measurer);
/// Runs the global type-inference algorithm once.
- void runGlobalTypeInference(FunctionEntity mainElement,
- ClosedWorld closedWorld, ClosedWorldRefiner closedWorldRefiner) {
+ void runGlobalTypeInference(
+ FunctionEntity mainElement, JClosedWorld closedWorld) {
measure(() {
typesInferrerInternal ??= compiler.backendStrategy.createTypesInferrer(
- closedWorldRefiner,
+ closedWorld,
disableTypeInference: compiler.disableTypeInference);
typesInferrerInternal.analyzeMain(mainElement);
typesInferrerInternal.clear();
diff --git a/pkg/compiler/lib/src/universe/codegen_world_builder.dart b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
index 8301869..bd9dca0 100644
--- a/pkg/compiler/lib/src/universe/codegen_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
@@ -45,9 +45,9 @@
ConstantValue getConstantFieldInitializer(covariant FieldEntity field);
/// Returns `true` if [member] is invoked as a setter.
- bool hasInvokedSetter(MemberEntity member, ClosedWorld world);
+ bool hasInvokedSetter(MemberEntity member, JClosedWorld world);
- bool hasInvokedGetter(MemberEntity member, ClosedWorld world);
+ bool hasInvokedGetter(MemberEntity member, JClosedWorld world);
Map<Selector, SelectorConstraints> invocationsByName(String name);
@@ -83,7 +83,7 @@
implements CodegenWorldBuilder {
final ElementEnvironment _elementEnvironment;
final NativeBasicData _nativeBasicData;
- final ClosedWorld _world;
+ final JClosedWorld _world;
/// The set of all directly instantiated classes, that is, classes with a
/// generative constructor that has been called directly and not only through
@@ -222,7 +222,7 @@
}
bool _hasMatchingSelector(Map<Selector, SelectorConstraints> selectors,
- MemberEntity member, ClosedWorld world) {
+ MemberEntity member, JClosedWorld world) {
if (selectors == null) return false;
for (Selector selector in selectors.keys) {
if (selector.appliesUnnamed(member)) {
@@ -235,16 +235,16 @@
return false;
}
- bool hasInvocation(MemberEntity member, ClosedWorld world) {
+ bool hasInvocation(MemberEntity member, JClosedWorld world) {
return _hasMatchingSelector(_invokedNames[member.name], member, world);
}
- bool hasInvokedGetter(MemberEntity member, ClosedWorld world) {
+ bool hasInvokedGetter(MemberEntity member, JClosedWorld world) {
return _hasMatchingSelector(_invokedGetters[member.name], member, world) ||
member.isFunction && methodsNeedingSuperGetter.contains(member);
}
- bool hasInvokedSetter(MemberEntity member, ClosedWorld world) {
+ bool hasInvokedSetter(MemberEntity member, JClosedWorld world) {
return _hasMatchingSelector(_invokedSetters[member.name], member, world);
}
@@ -647,7 +647,7 @@
this._globalLocalsMap,
ElementEnvironment elementEnvironment,
NativeBasicData nativeBasicData,
- ClosedWorld world,
+ JClosedWorld world,
SelectorConstraintsStrategy selectorConstraintsStrategy)
: super(elementEnvironment, nativeBasicData, world,
selectorConstraintsStrategy);
diff --git a/pkg/compiler/lib/src/universe/world_builder.dart b/pkg/compiler/lib/src/universe/world_builder.dart
index 0210724..088849b 100644
--- a/pkg/compiler/lib/src/universe/world_builder.dart
+++ b/pkg/compiler/lib/src/universe/world_builder.dart
@@ -25,7 +25,7 @@
import '../universe/class_set.dart';
import '../util/enumset.dart';
import '../util/util.dart';
-import '../world.dart' show World, ClosedWorld, KClosedWorld, OpenWorld;
+import '../world.dart' show World, JClosedWorld, KClosedWorld, OpenWorld;
import 'class_hierarchy_builder.dart' show ClassHierarchyBuilder, ClassQueries;
import 'selector.dart' show Selector;
import 'use.dart'
@@ -249,7 +249,7 @@
}
/// The [WorldBuilder] is an auxiliary class used in the process of computing
-/// the [ClosedWorld].
+/// the [JClosedWorld].
// TODO(johnniwinther): Move common implementation to a [WorldBuilderBase] when
// universes and worlds have been unified.
abstract class WorldBuilder {
diff --git a/pkg/compiler/lib/src/world.dart b/pkg/compiler/lib/src/world.dart
index a80698f..4dde4f2 100644
--- a/pkg/compiler/lib/src/world.dart
+++ b/pkg/compiler/lib/src/world.dart
@@ -29,10 +29,10 @@
import 'universe/side_effects.dart' show SideEffects, SideEffectsBuilder;
import 'universe/world_builder.dart';
-/// Common superinterface for [OpenWorld] and [ClosedWorld].
+/// Common superinterface for [OpenWorld] and [JClosedWorld].
abstract class World {}
-/// The [ClosedWorld] represents the information known about a program when
+/// The [JClosedWorld] represents the information known about a program when
/// compiling with closed-world semantics.
///
/// Given the entrypoint of an application, we can track what's reachable from
@@ -40,7 +40,8 @@
/// JavaScript types are touched, what language features are used, and so on.
/// This precise knowledge about what's live in the program is later used in
/// optimizations and other compiler decisions during code generation.
-abstract class ClosedWorld implements World {
+// TODO(johnniwinther): Maybe this should just be called the JWorld.
+abstract class JClosedWorld implements World {
BackendUsage get backendUsage;
NativeData get nativeData;
@@ -93,10 +94,6 @@
/// subclass.
bool isIndirectlyInstantiated(ClassEntity cls);
- /// Returns `true` if [cls] is abstract and thus can only be instantiated
- /// through subclasses.
- bool isAbstract(ClassEntity cls);
-
/// Returns `true` if [cls] is implemented by an instantiated class.
bool isImplemented(ClassEntity cls);
@@ -270,14 +267,14 @@
/// of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassHierarchyNode getClassHierarchyNode(ClassEntity cls);
/// Returns [ClassSet] for [cls] used to model the extends and implements
/// relations of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassSet getClassSet(ClassEntity cls);
/// Returns `true` if the field [element] is known to be effectively final.
@@ -345,13 +342,6 @@
///
/// If [cls] is provided, the dump will contain only classes related to [cls].
String dump([ClassEntity cls]);
-}
-
-/// Interface for computing side effects and uses of elements. This is used
-/// during type inference to compute the [ClosedWorld] for code generation.
-abstract class ClosedWorldRefiner {
- /// The closed world being refined.
- ClosedWorld get closedWorld;
/// Registers the executing of [element] as without side effects.
void registerSideEffectsFree(FunctionEntity element);
@@ -422,7 +412,7 @@
SUBTYPE,
}
-abstract class ClosedWorldBase implements ClosedWorld, ClosedWorldRefiner {
+abstract class ClosedWorldBase implements JClosedWorld {
final ConstantSystem constantSystem;
final NativeData nativeData;
final InterceptorData interceptorData;
@@ -544,9 +534,6 @@
return node != null && node.isIndirectlyInstantiated;
}
- @override
- bool isAbstract(ClassEntity cls) => cls.isAbstract;
-
/// Returns `true` if [cls] is implemented by an instantiated class.
bool isImplemented(ClassEntity cls) {
return _implementedClasses.contains(cls);
@@ -967,7 +954,7 @@
/// of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassHierarchyNode getClassHierarchyNode(ClassEntity cls) {
return _classHierarchyNodes[cls];
}
@@ -976,7 +963,7 @@
/// relations of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassSet getClassSet(ClassEntity cls) {
return _classSets[cls];
}
@@ -1250,14 +1237,14 @@
/// of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassHierarchyNode getClassHierarchyNode(ClassEntity cls);
/// Returns [ClassSet] for [cls] used to model the extends and implements
/// relations of known classes.
///
/// This method is only provided for testing. For queries on classes, use the
- /// methods defined in [ClosedWorld].
+ /// methods defined in [JClosedWorld].
ClassSet getClassSet(ClassEntity cls);
Iterable<MemberEntity> get liveInstanceMembers;
Map<ClassEntity, Set<ClassEntity>> get mixinUses;
diff --git a/tests/compiler/dart2js/codegen/expect_annotations_test.dart b/tests/compiler/dart2js/codegen/expect_annotations_test.dart
index 600c8a4..2b0cbfb 100644
--- a/tests/compiler/dart2js/codegen/expect_annotations_test.dart
+++ b/tests/compiler/dart2js/codegen/expect_annotations_test.dart
@@ -9,7 +9,7 @@
import 'package:compiler/src/inferrer/typemasks/masks.dart';
import 'package:compiler/src/js_backend/annotations.dart' as optimizerHints;
import 'package:compiler/src/types/types.dart';
-import 'package:compiler/src/world.dart' show ClosedWorld;
+import 'package:compiler/src/world.dart' show JClosedWorld;
import '../inference/type_mask_test_helper.dart';
import '../memory_compiler.dart';
@@ -59,7 +59,7 @@
CompilationResult result =
await runCompiler(memorySourceFiles: MEMORY_SOURCE_FILES);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
Expect.isFalse(compiler.compilationFailed, 'Unsuccessful compilation');
Expect.isNotNull(closedWorld.commonElements.expectNoInlineClass,
'NoInlineClass is unresolved.');
diff --git a/tests/compiler/dart2js/codegen/jsarray_indexof_test.dart b/tests/compiler/dart2js/codegen/jsarray_indexof_test.dart
index c6d31ac..2c2b74d 100644
--- a/tests/compiler/dart2js/codegen/jsarray_indexof_test.dart
+++ b/tests/compiler/dart2js/codegen/jsarray_indexof_test.dart
@@ -48,7 +48,7 @@
memorySourceFiles: {'main.dart': source}, options: options);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
MemberEntity jsArrayIndexOf =
findClassMember(closedWorld, 'JSArray', 'indexOf');
ProgramLookup programLookup = new ProgramLookup(result.compiler);
diff --git a/tests/compiler/dart2js/compiler_helper.dart b/tests/compiler/dart2js/compiler_helper.dart
index 619871d..d0fabb9 100644
--- a/tests/compiler/dart2js/compiler_helper.dart
+++ b/tests/compiler/dart2js/compiler_helper.dart
@@ -80,7 +80,7 @@
outputProvider: outputCollector);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
FunctionEntity element =
diff --git a/tests/compiler/dart2js/end_to_end/exit_code_test.dart b/tests/compiler/dart2js/end_to_end/exit_code_test.dart
index f12e914..5b10bee 100644
--- a/tests/compiler/dart2js/end_to_end/exit_code_test.dart
+++ b/tests/compiler/dart2js/end_to_end/exit_code_test.dart
@@ -112,7 +112,7 @@
useNewSourceInfo: compiler.options.useNewSourceInfo);
@override
- WorldImpact codegen(CodegenWorkItem work, ClosedWorld closedWorld) {
+ WorldImpact codegen(CodegenWorkItem work, JClosedWorld closedWorld) {
compiler.test('Compiler.codegen');
return super.codegen(work, closedWorld);
}
diff --git a/tests/compiler/dart2js/generic_methods/generic_method_test.dart b/tests/compiler/dart2js/generic_methods/generic_method_test.dart
index cbe8247..e907015 100644
--- a/tests/compiler/dart2js/generic_methods/generic_method_test.dart
+++ b/tests/compiler/dart2js/generic_methods/generic_method_test.dart
@@ -182,7 +182,7 @@
Flags.strongMode,
Flags.disableRtiOptimization,
], expectedOutput: OUTPUT, printJs: args.contains('-v'));
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
void checkMethod(String methodName,
diff --git a/tests/compiler/dart2js/generic_methods/instantiation_stub_test.dart b/tests/compiler/dart2js/generic_methods/instantiation_stub_test.dart
index 6d2478b..4933012 100644
--- a/tests/compiler/dart2js/generic_methods/instantiation_stub_test.dart
+++ b/tests/compiler/dart2js/generic_methods/instantiation_stub_test.dart
@@ -69,7 +69,7 @@
options: [Flags.strongMode, Flags.omitImplicitChecks]);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ProgramLookup programLookup = new ProgramLookup(compiler);
void checkStubs(ClassEntity element, List<String> expectedStubs) {
diff --git a/tests/compiler/dart2js/helpers/element_lookup.dart b/tests/compiler/dart2js/helpers/element_lookup.dart
index 4ebe13a..6d24abe 100644
--- a/tests/compiler/dart2js/helpers/element_lookup.dart
+++ b/tests/compiler/dart2js/helpers/element_lookup.dart
@@ -5,9 +5,9 @@
import 'package:compiler/src/common_elements.dart' show ElementEnvironment;
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/types.dart';
-import 'package:compiler/src/world.dart' show ClosedWorld;
+import 'package:compiler/src/world.dart' show JClosedWorld;
-ClassEntity findClass(ClosedWorld closedWorld, String name) {
+ClassEntity findClass(JClosedWorld closedWorld, String name) {
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
ClassEntity cls =
elementEnvironment.lookupClass(elementEnvironment.mainLibrary, name);
@@ -22,7 +22,7 @@
}
MemberEntity findClassMember(
- ClosedWorld closedWorld, String className, String memberName) {
+ JClosedWorld closedWorld, String className, String memberName) {
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
ClassEntity cls = findClass(closedWorld, className);
assert(cls != null, "Class '$className' not found.");
@@ -31,7 +31,7 @@
return member;
}
-MemberEntity findMember(ClosedWorld closedWorld, String name) {
+MemberEntity findMember(JClosedWorld closedWorld, String name) {
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
MemberEntity member = elementEnvironment.lookupLibraryMember(
elementEnvironment.mainLibrary, name);
@@ -41,12 +41,12 @@
return member;
}
-FunctionType findFunctionType(ClosedWorld closedWorld, String name) {
+FunctionType findFunctionType(JClosedWorld closedWorld, String name) {
FunctionEntity function = findMember(closedWorld, name);
return closedWorld.elementEnvironment.getFunctionType(function);
}
-DartType findFieldType(ClosedWorld closedWorld, String name) {
+DartType findFieldType(JClosedWorld closedWorld, String name) {
FieldEntity field = findMember(closedWorld, name);
return closedWorld.elementEnvironment.getFieldType(field);
}
diff --git a/tests/compiler/dart2js/inference/load_deferred_library_test.dart b/tests/compiler/dart2js/inference/load_deferred_library_test.dart
index 7cb4515..0db1d83 100644
--- a/tests/compiler/dart2js/inference/load_deferred_library_test.dart
+++ b/tests/compiler/dart2js/inference/load_deferred_library_test.dart
@@ -45,7 +45,7 @@
memorySourceFiles: {'main.dart': source}, options: options);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
LibraryEntity helperLibrary =
diff --git a/tests/compiler/dart2js/inference/map_tracer_test.dart b/tests/compiler/dart2js/inference/map_tracer_test.dart
index b7cab09..e383eab 100644
--- a/tests/compiler/dart2js/inference/map_tracer_test.dart
+++ b/tests/compiler/dart2js/inference/map_tracer_test.dart
@@ -233,7 +233,7 @@
TypeMask keyType, valueType;
TypeGraphInferrer typesInferrer =
compiler.globalInference.typesInferrerInternal;
- ClosedWorld closedWorld = typesInferrer.closedWorld;
+ JClosedWorld closedWorld = typesInferrer.closedWorld;
AbstractValueDomain commonMasks = closedWorld.abstractValueDomain;
TypeMask emptyType = new TypeMask.nonNullEmpty();
MemberEntity aKey = findMember(closedWorld, 'aKey');
diff --git a/tests/compiler/dart2js/inference/side_effects_test.dart b/tests/compiler/dart2js/inference/side_effects_test.dart
index e60006d..05f713e 100644
--- a/tests/compiler/dart2js/inference/side_effects_test.dart
+++ b/tests/compiler/dart2js/inference/side_effects_test.dart
@@ -28,7 +28,7 @@
}
abstract class ComputeValueMixin<T> {
- ClosedWorld get closedWorld;
+ JClosedWorld get closedWorld;
String getMemberValue(MemberEntity member) {
if (member is FunctionEntity) {
@@ -59,7 +59,7 @@
/// AST visitor for computing side effects data for a member.
class SideEffectsIrComputer extends IrDataExtractor
with ComputeValueMixin<ir.Node> {
- final ClosedWorld closedWorld;
+ final JClosedWorld closedWorld;
final KernelToElementMapForBuilding _elementMap;
final ClosureDataLookup<ir.Node> _closureDataLookup;
diff --git a/tests/compiler/dart2js/inference/type_combination_test.dart b/tests/compiler/dart2js/inference/type_combination_test.dart
index 17c6e73..23702fd 100644
--- a/tests/compiler/dart2js/inference/type_combination_test.dart
+++ b/tests/compiler/dart2js/inference/type_combination_test.dart
@@ -104,7 +104,7 @@
}
}
-void testUnion(ClosedWorld closedWorld) {
+void testUnion(JClosedWorld closedWorld) {
RuleSet ruleSet = new RuleSet(
'union', (t1, t2) => simplify(t1.union(t2, closedWorld), closedWorld));
rule(type1, type2, result) => ruleSet.rule(type1, type2, result);
@@ -415,7 +415,7 @@
ruleSet.validateCoverage();
}
-void testIntersection(ClosedWorld closedWorld) {
+void testIntersection(JClosedWorld closedWorld) {
RuleSet ruleSet =
new RuleSet('intersection', (t1, t2) => t1.intersection(t2, closedWorld));
rule(type1, type2, result) => ruleSet.rule(type1, type2, result);
@@ -730,7 +730,7 @@
ruleSet.validateCoverage();
}
-void testRegressions(ClosedWorld closedWorld) {
+void testRegressions(JClosedWorld closedWorld) {
TypeMask nonNullPotentialString =
new TypeMask.nonNullSubtype(patternClass, closedWorld);
Expect.equals(potentialString,
@@ -758,7 +758,7 @@
}, beforeRun: (compiler) => compiler.stopAfterTypeInference = true);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
CommonElements commonElements = closedWorld.commonElements;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
diff --git a/tests/compiler/dart2js/inference/type_mask2_test.dart b/tests/compiler/dart2js/inference/type_mask2_test.dart
index 5ce382b..200f245 100644
--- a/tests/compiler/dart2js/inference/type_mask2_test.dart
+++ b/tests/compiler/dart2js/inference/type_mask2_test.dart
@@ -9,7 +9,7 @@
import 'package:async_helper/async_helper.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/inferrer/typemasks/masks.dart';
-import 'package:compiler/src/world.dart' show ClosedWorld;
+import 'package:compiler/src/world.dart' show JClosedWorld;
import '../type_test_helper.dart';
isCheckedMode() {
@@ -35,7 +35,7 @@
});
}
-checkMasks(ClosedWorld closedWorld, List<ClassEntity> allClasses,
+checkMasks(JClosedWorld closedWorld, List<ClassEntity> allClasses,
List<FlatTypeMask> masks,
{FlatTypeMask result,
List<FlatTypeMask> disjointMasks,
@@ -107,7 +107,7 @@
}
""", testBackendWorld: true);
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
ClassEntity Object_ = env.getElement("Object");
ClassEntity A = env.getElement("A");
@@ -216,7 +216,7 @@
}
""",
testBackendWorld: true);
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
ClassEntity Object_ = env.getElement("Object");
ClassEntity String_ = env.getElement("String");
diff --git a/tests/compiler/dart2js/inference/type_mask_disjoint_test.dart b/tests/compiler/dart2js/inference/type_mask_disjoint_test.dart
index a1471f4..c3dd1a9 100644
--- a/tests/compiler/dart2js/inference/type_mask_disjoint_test.dart
+++ b/tests/compiler/dart2js/inference/type_mask_disjoint_test.dart
@@ -44,7 +44,7 @@
await runCompiler(memorySourceFiles: {'main.dart': CODE});
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld world = compiler.backendClosedWorldForTesting;
+ JClosedWorld world = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = world.elementEnvironment;
/// Checks the expectation of `isDisjoint` for two mask. Also checks that
diff --git a/tests/compiler/dart2js/inference/type_mask_test.dart b/tests/compiler/dart2js/inference/type_mask_test.dart
index 159c971..c22d721 100644
--- a/tests/compiler/dart2js/inference/type_mask_test.dart
+++ b/tests/compiler/dart2js/inference/type_mask_test.dart
@@ -27,7 +27,7 @@
await runCompiler(memorySourceFiles: {'main.dart': CODE});
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
dynamic classA =
diff --git a/tests/compiler/dart2js/inference/type_mask_test_helper.dart b/tests/compiler/dart2js/inference/type_mask_test_helper.dart
index cbaa56f..025d218 100644
--- a/tests/compiler/dart2js/inference/type_mask_test_helper.dart
+++ b/tests/compiler/dart2js/inference/type_mask_test_helper.dart
@@ -5,11 +5,11 @@
library type_mask_test_helper;
import 'package:compiler/src/inferrer/typemasks/masks.dart';
-import 'package:compiler/src/world.dart' show ClosedWorld;
+import 'package:compiler/src/world.dart' show JClosedWorld;
export 'package:compiler/src/types/types.dart';
-TypeMask simplify(TypeMask mask, ClosedWorld closedWorld) {
+TypeMask simplify(TypeMask mask, JClosedWorld closedWorld) {
if (mask is ForwardingTypeMask) {
return simplify(mask.forwardTo, closedWorld);
} else if (mask is UnionTypeMask) {
@@ -19,7 +19,7 @@
}
}
-TypeMask interceptorOrComparable(ClosedWorld closedWorld,
+TypeMask interceptorOrComparable(JClosedWorld closedWorld,
{bool nullable: false}) {
// TODO(johnniwinther): The mock libraries are missing 'Comparable' and
// therefore consider the union of for instance 'String' and 'num' to be
diff --git a/tests/compiler/dart2js/inference/union_type_test.dart b/tests/compiler/dart2js/inference/union_type_test.dart
index 2f2a73b..a34dceb 100644
--- a/tests/compiler/dart2js/inference/union_type_test.dart
+++ b/tests/compiler/dart2js/inference/union_type_test.dart
@@ -19,7 +19,7 @@
new B();
}
""", testBackendWorld: true);
- ClosedWorld world = env.jClosedWorld;
+ JClosedWorld world = env.jClosedWorld;
FlatTypeMask mask1 = new FlatTypeMask.exact(env.getClass('A'));
FlatTypeMask mask2 = new FlatTypeMask.exact(env.getClass('B'));
UnionTypeMask union1 = mask1.nonNullable().union(mask2, world);
diff --git a/tests/compiler/dart2js/jsinterop/world_test.dart b/tests/compiler/dart2js/jsinterop/world_test.dart
index a691e29..c47be24 100644
--- a/tests/compiler/dart2js/jsinterop/world_test.dart
+++ b/tests/compiler/dart2js/jsinterop/world_test.dart
@@ -94,7 +94,7 @@
return cls;
}
- ClosedWorld world = compiler.backendClosedWorldForTesting;
+ JClosedWorld world = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = world.elementEnvironment;
ClassEntity Object_ = registerClass(world.commonElements.objectClass);
ClassEntity Interceptor =
diff --git a/tests/compiler/dart2js/model/class_set_test.dart b/tests/compiler/dart2js/model/class_set_test.dart
index abe99dd..af328ef 100644
--- a/tests/compiler/dart2js/model/class_set_test.dart
+++ b/tests/compiler/dart2js/model/class_set_test.dart
@@ -603,7 +603,7 @@
""",
options: strongMode ? [Flags.strongMode] : [],
testBackendWorld: true);
- ClosedWorld world = env.jClosedWorld;
+ JClosedWorld world = env.jClosedWorld;
ClassEntity functionClass = world.commonElements.functionClass;
ClassEntity closureClass = world.commonElements.closureClass;
diff --git a/tests/compiler/dart2js/model/enqueuer_test.dart b/tests/compiler/dart2js/model/enqueuer_test.dart
index 865d3d6..6407ea4 100644
--- a/tests/compiler/dart2js/model/enqueuer_test.dart
+++ b/tests/compiler/dart2js/model/enqueuer_test.dart
@@ -260,7 +260,7 @@
};
compiler.onCodegenQueueEmptyForTesting = () {
Enqueuer enqueuer = compiler.enqueuer.codegenEnqueuerForTesting;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment =
compiler.backendClosedWorldForTesting.elementEnvironment;
checkInvariant(enqueuer, elementEnvironment);
diff --git a/tests/compiler/dart2js/model/forwarding_stub_test.dart b/tests/compiler/dart2js/model/forwarding_stub_test.dart
index ed86ed3..234f97b 100644
--- a/tests/compiler/dart2js/model/forwarding_stub_test.dart
+++ b/tests/compiler/dart2js/model/forwarding_stub_test.dart
@@ -30,7 +30,7 @@
memorySourceFiles: {'main.dart': source}, options: [Flags.strongMode]));
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
ClassEntity cls =
elementEnvironment.lookupClass(elementEnvironment.mainLibrary, 'Class');
diff --git a/tests/compiler/dart2js/model/world_test.dart b/tests/compiler/dart2js/model/world_test.dart
index 3c2754c..3abdd5d 100644
--- a/tests/compiler/dart2js/model/world_test.dart
+++ b/tests/compiler/dart2js/model/world_test.dart
@@ -10,7 +10,7 @@
import 'package:compiler/src/common_elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/universe/class_set.dart';
-import 'package:compiler/src/world.dart' show ClassQuery, ClosedWorld;
+import 'package:compiler/src/world.dart' show ClassQuery, JClosedWorld;
import '../type_test_helper.dart';
void main() {
@@ -52,7 +52,7 @@
new html.Worker('');
}
""", testBackendWorld: true);
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
ClassEntity Object_ = env.getElement("Object");
@@ -243,7 +243,7 @@
new H4();
}
""", testBackendWorld: true);
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
check(String name, {bool hasStrictSubtype, bool hasOnlySubclasses}) {
ClassEntity cls = env.getElement(name);
@@ -320,7 +320,7 @@
}
""",
testBackendWorld: true);
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
LibraryEntity dart_html = elementEnvironment.lookupLibrary(Uris.dart_html);
@@ -545,7 +545,7 @@
}
""",
testBackendWorld: true);
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
ClassEntity A = env.getElement("A");
ClassEntity B = env.getElement("B");
diff --git a/tests/compiler/dart2js/needs_no_such_method_test.dart b/tests/compiler/dart2js/needs_no_such_method_test.dart
index fc9dbaa..68c216b 100644
--- a/tests/compiler/dart2js/needs_no_such_method_test.dart
+++ b/tests/compiler/dart2js/needs_no_such_method_test.dart
@@ -9,7 +9,7 @@
import 'package:compiler/src/elements/names.dart';
import 'package:compiler/src/universe/call_structure.dart';
import 'package:compiler/src/universe/selector.dart';
-import 'package:compiler/src/world.dart' show ClosedWorld, ClassQuery;
+import 'package:compiler/src/world.dart' show JClosedWorld, ClassQuery;
import 'type_test_helper.dart';
void main() {
@@ -33,7 +33,7 @@
testClassSets() async {
Selector foo, bar, baz;
- ClosedWorld closedWorld;
+ JClosedWorld closedWorld;
ClassEntity superclass, subclass, subtype;
String testMode;
diff --git a/tests/compiler/dart2js/no_such_method_enabled_test.dart b/tests/compiler/dart2js/no_such_method_enabled_test.dart
index 1142b92..f16b55b 100644
--- a/tests/compiler/dart2js/no_such_method_enabled_test.dart
+++ b/tests/compiler/dart2js/no_such_method_enabled_test.dart
@@ -229,7 +229,7 @@
NoSuchMethodResolver resolver = registry.internalResolverForTesting;
FunctionEntity ObjectNSM = frontendEnvironment.lookupClassMember(
compiler.frontendStrategy.commonElements.objectClass, 'noSuchMethod');
- ClosedWorld backendClosedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld backendClosedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment backendEnvironment = backendClosedWorld.elementEnvironment;
NoSuchMethodDataImpl data = backendClosedWorld.noSuchMethodData;
diff --git a/tests/compiler/dart2js/receiver_type_test.dart b/tests/compiler/dart2js/receiver_type_test.dart
index 4bfd0e6..50b8fc3 100644
--- a/tests/compiler/dart2js/receiver_type_test.dart
+++ b/tests/compiler/dart2js/receiver_type_test.dart
@@ -44,7 +44,7 @@
'C': '[exact=C]',
};
- ClosedWorld closedWorld = env.jClosedWorld;
+ JClosedWorld closedWorld = env.jClosedWorld;
int closureCount = 0;
Selector callSelector = new Selector.callClosure(0);
closedWorld.forEachStrictSubclassOf(closedWorld.commonElements.objectClass,
diff --git a/tests/compiler/dart2js/rti/backend_type_helper_test.dart b/tests/compiler/dart2js/rti/backend_type_helper_test.dart
index 2549436..6bccaa8 100644
--- a/tests/compiler/dart2js/rti/backend_type_helper_test.dart
+++ b/tests/compiler/dart2js/rti/backend_type_helper_test.dart
@@ -19,7 +19,7 @@
entryPoint: Platform.script.resolve('data/subtype_named_args.dart'));
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ProgramLookup programLookup = new ProgramLookup(compiler);
List<ClassEntity> found = <ClassEntity>[];
diff --git a/tests/compiler/dart2js/rti/disable_rti_test.dart b/tests/compiler/dart2js/rti/disable_rti_test.dart
index c420f57..a199849 100644
--- a/tests/compiler/dart2js/rti/disable_rti_test.dart
+++ b/tests/compiler/dart2js/rti/disable_rti_test.dart
@@ -62,7 +62,7 @@
options: [Flags.disableRtiOptimization, Flags.disableInlining]);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
RuntimeTypesNeed rtiNeed = closedWorld.rtiNeed;
ProgramLookup programLookup = new ProgramLookup(compiler);
diff --git a/tests/compiler/dart2js/rti/factory_call_test.dart b/tests/compiler/dart2js/rti/factory_call_test.dart
index 9d3f08f..5c0628e 100644
--- a/tests/compiler/dart2js/rti/factory_call_test.dart
+++ b/tests/compiler/dart2js/rti/factory_call_test.dart
@@ -43,7 +43,7 @@
memorySourceFiles: {'main.dart': code}, options: [Flags.strongMode]);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
RuntimeTypesNeed rtiNeed = closedWorld.rtiNeed;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
ProgramLookup programLookup = new ProgramLookup(compiler);
diff --git a/tests/compiler/dart2js/rti/instance_call_test.dart b/tests/compiler/dart2js/rti/instance_call_test.dart
index 337bae0..9d220f9 100644
--- a/tests/compiler/dart2js/rti/instance_call_test.dart
+++ b/tests/compiler/dart2js/rti/instance_call_test.dart
@@ -103,7 +103,7 @@
options: [Flags.strongMode, Flags.omitImplicitChecks]);
Expect.isTrue(result.isSuccess);
Compiler compiler = result.compiler;
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
RuntimeTypesNeed rtiNeed = closedWorld.rtiNeed;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
ProgramLookup programLookup = new ProgramLookup(compiler);
diff --git a/tests/compiler/dart2js/rti/type_representation_test.dart b/tests/compiler/dart2js/rti/type_representation_test.dart
index 167ab47..ffb6fbd 100644
--- a/tests/compiler/dart2js/rti/type_representation_test.dart
+++ b/tests/compiler/dart2js/rti/type_representation_test.dart
@@ -109,7 +109,7 @@
return stringify(name);
}
- ClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
+ JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
ElementEnvironment elementEnvironment = closedWorld.elementEnvironment;
String func = backend.namer.functionTypeTag;
String ret = backend.namer.functionTypeReturnTypeTag;
diff --git a/tests/compiler/dart2js/type_test_helper.dart b/tests/compiler/dart2js/type_test_helper.dart
index 142da6d..1aed7af 100644
--- a/tests/compiler/dart2js/type_test_helper.dart
+++ b/tests/compiler/dart2js/type_test_helper.dart
@@ -13,7 +13,7 @@
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/frontend_strategy.dart';
import 'package:compiler/src/kernel/kernel_strategy.dart';
-import 'package:compiler/src/world.dart' show ClosedWorld, KClosedWorld;
+import 'package:compiler/src/world.dart' show JClosedWorld, KClosedWorld;
import 'memory_compiler.dart' as memory;
DartType instantiate(ClassEntity element, List<DartType> arguments) {
@@ -193,7 +193,7 @@
return types.isPotentialSubtype(T, S);
}
- ClosedWorld get jClosedWorld {
+ JClosedWorld get jClosedWorld {
assert(testBackendWorld);
return compiler.backendClosedWorldForTesting;
}