| Index: pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
|
| diff --git a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
|
| index 7e3bbd6327a33ff18ff7ec0c69caf249edbee01d..ad31d89c54db2eba0deb05784d6406bd1fa6b6a6 100644
|
| --- a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
|
| +++ b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
|
| @@ -522,13 +522,13 @@ class MemberTypeInformation extends ElementTypeInformation
|
| return mask;
|
| }
|
| if (element.isField) {
|
| - return _narrowType(compiler.closedWorld, mask, element.type);
|
| + return _narrowType(inferrer.closedWorld, mask, element.type);
|
| }
|
| assert(
|
| element.isFunction || element.isGetter || element.isFactoryConstructor);
|
|
|
| FunctionType type = element.type;
|
| - return _narrowType(compiler.closedWorld, mask, type.returnType);
|
| + return _narrowType(inferrer.closedWorld, mask, type.returnType);
|
| }
|
|
|
| TypeMask computeType(TypeGraphInferrerEngine inferrer) {
|
| @@ -669,7 +669,7 @@ class ParameterTypeInformation extends ElementTypeInformation {
|
| // ignore type annotations to ensure that the checks are actually inserted
|
| // into the function body and retained until runtime.
|
| assert(!compiler.options.enableTypeAssertions);
|
| - return _narrowType(compiler.closedWorld, mask, element.type);
|
| + return _narrowType(inferrer.closedWorld, mask, element.type);
|
| }
|
|
|
| TypeMask computeType(TypeGraphInferrerEngine inferrer) {
|
| @@ -818,8 +818,7 @@ class DynamicCallSiteTypeInformation extends CallSiteTypeInformation {
|
| void addToGraph(TypeGraphInferrerEngine inferrer) {
|
| assert(receiver != null);
|
| TypeMask typeMask = computeTypedSelector(inferrer);
|
| - targets =
|
| - inferrer.compiler.closedWorld.allFunctions.filter(selector, typeMask);
|
| + targets = inferrer.closedWorld.allFunctions.filter(selector, typeMask);
|
| receiver.addUser(this);
|
| if (arguments != null) {
|
| arguments.forEach((info) => info.addUser(this));
|
| @@ -973,16 +972,16 @@ class DynamicCallSiteTypeInformation extends CallSiteTypeInformation {
|
| Compiler compiler = inferrer.compiler;
|
| JavaScriptBackend backend = compiler.backend;
|
| TypeMask maskToUse =
|
| - compiler.closedWorld.extendMaskIfReachesAll(selector, typeMask);
|
| + inferrer.closedWorld.extendMaskIfReachesAll(selector, typeMask);
|
| bool canReachAll = backend.hasInvokeOnSupport && (maskToUse != typeMask);
|
|
|
| // If this call could potentially reach all methods that satisfy
|
| // the untyped selector (through noSuchMethod's `Invocation`
|
| // and a call to `delegate`), we iterate over all these methods to
|
| // update their parameter types.
|
| - targets = compiler.closedWorld.allFunctions.filter(selector, maskToUse);
|
| + targets = inferrer.closedWorld.allFunctions.filter(selector, maskToUse);
|
| Iterable<Element> typedTargets = canReachAll
|
| - ? compiler.closedWorld.allFunctions.filter(selector, typeMask)
|
| + ? inferrer.closedWorld.allFunctions.filter(selector, typeMask)
|
| : targets;
|
|
|
| // Update the call graph if the targets could have changed.
|
| @@ -1078,8 +1077,7 @@ class DynamicCallSiteTypeInformation extends CallSiteTypeInformation {
|
| if (!abandonInferencing) {
|
| inferrer.updateSelectorInTree(caller, call, selector, mask);
|
| Iterable<Element> oldTargets = targets;
|
| - targets =
|
| - inferrer.compiler.closedWorld.allFunctions.filter(selector, mask);
|
| + targets = inferrer.closedWorld.allFunctions.filter(selector, mask);
|
| for (Element element in targets) {
|
| if (!oldTargets.contains(element)) {
|
| MemberTypeInformation callee =
|
|
|