Index: pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
diff --git a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
index bcecfae838ccdc1184498a109281981c84ef743d..4c2309efe2357e6b97e1e5c8e2c6f78d8745d342 100644 |
--- a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
+++ b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart |
@@ -67,6 +67,7 @@ class KernelAstAdapter { |
TreeElements get elements => _resolvedAst.elements; |
DiagnosticReporter get reporter => _compiler.reporter; |
Element get _target => _resolvedAst.element; |
+ ClosedWorld get _closedWorld => _compiler.closedWorld; |
GlobalTypeInferenceElementResult _resultOf(Element e) => |
_compiler.globalInference.results.resultOf(e); |
@@ -127,7 +128,7 @@ class KernelAstAdapter { |
bool getCanThrow(ir.Node procedure) { |
FunctionElement function = getElement(procedure); |
- return !_compiler.closedWorld.getCannotThrow(function); |
+ return !_closedWorld.getCannotThrow(function); |
} |
TypeMask returnTypeOf(ir.Member node) { |
@@ -136,7 +137,7 @@ class KernelAstAdapter { |
} |
SideEffects getSideEffects(ir.Node node) { |
- return _compiler.closedWorld.getSideEffectsOfElement(getElement(node)); |
+ return _closedWorld.getSideEffectsOfElement(getElement(node)); |
} |
CallStructure getCallStructure(ir.Arguments arguments) { |
@@ -214,7 +215,7 @@ class KernelAstAdapter { |
} |
TypeMask typeOfSet(ir.PropertySet setter) { |
- return _compiler.closedWorld.commonMasks.dynamicType; |
+ return _closedWorld.commonMasks.dynamicType; |
} |
TypeMask typeOfSend(ir.Expression send) { |
@@ -226,10 +227,10 @@ class KernelAstAdapter { |
ast.Node node = getNodeOrNull(listLiteral); |
if (node == null) { |
assertNodeIsSynthetic(listLiteral); |
- return _compiler.closedWorld.commonMasks.growableListType; |
+ return _closedWorld.commonMasks.growableListType; |
} |
return _resultOf(owner).typeOfNewList(getNode(listLiteral)) ?? |
- _compiler.closedWorld.commonMasks.dynamicType; |
+ _closedWorld.commonMasks.dynamicType; |
} |
TypeMask typeOfIterator(ir.ForInStatement forInStatement) { |
@@ -246,24 +247,24 @@ class KernelAstAdapter { |
bool isJsIndexableIterator(ir.ForInStatement forInStatement) { |
TypeMask mask = typeOfIterator(forInStatement); |
- ClosedWorld closedWorld = _compiler.closedWorld; |
return mask != null && |
- mask.satisfies(_backend.helpers.jsIndexableClass, closedWorld) && |
+ mask.satisfies(_backend.helpers.jsIndexableClass, _closedWorld) && |
// String is indexable but not iterable. |
- !mask.satisfies(_backend.helpers.jsStringClass, closedWorld); |
+ !mask.satisfies(_backend.helpers.jsStringClass, _closedWorld); |
} |
bool isFixedLength(TypeMask mask) { |
- ClosedWorld closedWorld = _compiler.closedWorld; |
JavaScriptBackend backend = _compiler.backend; |
if (mask.isContainer && (mask as ContainerTypeMask).length != null) { |
// A container on which we have inferred the length. |
return true; |
} |
// TODO(sra): Recognize any combination of fixed length indexables. |
- if (mask.containsOnly(backend.helpers.jsFixedArrayClass) || |
- mask.containsOnly(backend.helpers.jsUnmodifiableArrayClass) || |
- mask.containsOnlyString(closedWorld) || |
+ if (mask.containsOnly( |
+ _closedWorld.backendClasses.fixedListImplementation) || |
+ mask.containsOnly( |
+ _closedWorld.backendClasses.constListImplementation) || |
+ mask.containsOnlyString(_closedWorld) || |
backend.isTypedArray(mask)) { |
return true; |
} |