| Index: pkg/compiler/lib/src/inferrer/inferrer_engine.dart
|
| diff --git a/pkg/compiler/lib/src/inferrer/inferrer_engine.dart b/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
|
| index 1fbdc6347deb248d0ee73a1fdc6fc86e6051de76..e325a2f36c2fc3113f954f652a4ab402ff607dc7 100644
|
| --- a/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
|
| +++ b/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
|
| @@ -336,20 +336,20 @@ class InferrerEngine {
|
| refine();
|
|
|
| // Try to infer element types of lists and compute their escape information.
|
| - types.allocatedLists.values.forEach((ListTypeInformation info) {
|
| + types.allocatedLists.values.forEach((TypeInformation info) {
|
| analyzeListAndEnqueue(info);
|
| });
|
|
|
| // Try to infer the key and value types for maps and compute the values'
|
| // escape information.
|
| - types.allocatedMaps.values.forEach((MapTypeInformation info) {
|
| + types.allocatedMaps.values.forEach((TypeInformation info) {
|
| analyzeMapAndEnqueue(info);
|
| });
|
|
|
| Set<FunctionElement> bailedOutOn = new Set<FunctionElement>();
|
|
|
| // Trace closures to potentially infer argument types.
|
| - types.allocatedClosures.forEach((info) {
|
| + types.allocatedClosures.forEach((dynamic info) {
|
| void trace(
|
| Iterable<FunctionElement> elements, ClosureTracerVisitor tracer) {
|
| tracer.run();
|
| @@ -434,13 +434,15 @@ class InferrerEngine {
|
| refine();
|
|
|
| if (debug.PRINT_SUMMARY) {
|
| - types.allocatedLists.values.forEach((ListTypeInformation info) {
|
| + types.allocatedLists.values.forEach((_info) {
|
| + ListTypeInformation info = _info;
|
| print('${info.type} '
|
| 'for ${info.originalType.allocationNode} '
|
| 'at ${info.originalType.allocationElement} '
|
| 'after ${info.refineCount}');
|
| });
|
| - types.allocatedMaps.values.forEach((MapTypeInformation info) {
|
| + types.allocatedMaps.values.forEach((_info) {
|
| + MapTypeInformation info = _info;
|
| print('${info.type} '
|
| 'for ${info.originalType.allocationNode} '
|
| 'at ${info.originalType.allocationElement} '
|
| @@ -553,7 +555,7 @@ class InferrerEngine {
|
| if (Elements.isStaticOrTopLevelField(element) &&
|
| resolvedAst.body != null &&
|
| !element.isConst) {
|
| - var argument = resolvedAst.body;
|
| + dynamic argument = resolvedAst.body;
|
| // TODO(13429): We could do better here by using the
|
| // constant handler to figure out if it's a lazy field or not.
|
| if (argument.asSend() != null ||
|
| @@ -567,7 +569,7 @@ class InferrerEngine {
|
| }
|
|
|
| void processLoopInformation() {
|
| - types.allocatedCalls.forEach((info) {
|
| + types.allocatedCalls.forEach((dynamic info) {
|
| if (!info.inLoop) return;
|
| if (info is StaticCallSiteTypeInformation) {
|
| closedWorldRefiner
|
| @@ -899,7 +901,8 @@ class InferrerEngine {
|
| arguments, sideEffects, inLoop);
|
| }
|
|
|
| - closedWorld.locateMembers(selector, mask).forEach((MemberElement callee) {
|
| + closedWorld.locateMembers(selector, mask).forEach((_callee) {
|
| + MemberElement callee = _callee;
|
| updateSideEffects(sideEffects, selector, callee);
|
| });
|
|
|
| @@ -981,8 +984,8 @@ class InferrerEngine {
|
| Iterable<ResolvedAst> sortResolvedAsts() {
|
| int max = 0;
|
| Map<int, Setlet<ResolvedAst>> methodSizes = <int, Setlet<ResolvedAst>>{};
|
| - compiler.enqueuer.resolution.processedEntities
|
| - .forEach((MemberElement element) {
|
| + compiler.enqueuer.resolution.processedEntities.forEach((_element) {
|
| + MemberElement element = _element;
|
| ResolvedAst resolvedAst = element.resolvedAst;
|
| element = element.implementation;
|
| if (element.impliesType) return;
|
|
|