| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library simple_types_inferrer; | 5 library simple_types_inferrer; |
| 6 | 6 |
| 7 import '../closure.dart' show ClosureClassMap; | 7 import '../closure.dart' show ClosureClassMap; |
| 8 import '../common.dart'; | 8 import '../common.dart'; |
| 9 import '../common/names.dart' show Identifiers, Selectors; | 9 import '../common/names.dart' show Identifiers, Selectors; |
| 10 import '../compiler.dart' show Compiler; | 10 import '../compiler.dart' show Compiler; |
| (...skipping 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1063 break; | 1063 break; |
| 1064 | 1064 |
| 1065 case AsyncMarker.ASYNC_STAR: | 1065 case AsyncMarker.ASYNC_STAR: |
| 1066 returnType = inferrer.addReturnTypeFor( | 1066 returnType = inferrer.addReturnTypeFor( |
| 1067 analyzedElement, returnType, types.asyncStarStreamType); | 1067 analyzedElement, returnType, types.asyncStarStreamType); |
| 1068 break; | 1068 break; |
| 1069 } | 1069 } |
| 1070 } | 1070 } |
| 1071 | 1071 |
| 1072 inferrer.closedWorldRefiner | 1072 inferrer.closedWorldRefiner |
| 1073 .registerSideEffects(analyzedElement, sideEffects); | 1073 .registerSideEffects(analyzedElement.declaration, sideEffects); |
| 1074 assert(breaksFor.isEmpty); | 1074 assert(breaksFor.isEmpty); |
| 1075 assert(continuesFor.isEmpty); | 1075 assert(continuesFor.isEmpty); |
| 1076 return returnType; | 1076 return returnType; |
| 1077 } | 1077 } |
| 1078 | 1078 |
| 1079 TypeInformation visitFunctionExpression(ast.FunctionExpression node) { | 1079 TypeInformation visitFunctionExpression(ast.FunctionExpression node) { |
| 1080 // We loose track of [this] in closures (see issue 20840). To be on | 1080 // We loose track of [this] in closures (see issue 20840). To be on |
| 1081 // the safe side, we mark [this] as exposed here. We could do better by | 1081 // the safe side, we mark [this] as exposed here. We could do better by |
| 1082 // analyzing the closure. | 1082 // analyzing the closure. |
| 1083 // TODO(herhut): Analyze whether closure exposes this. | 1083 // TODO(herhut): Analyze whether closure exposes this. |
| (...skipping 1858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2942 Selector moveNextSelector = Selectors.moveNext; | 2942 Selector moveNextSelector = Selectors.moveNext; |
| 2943 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); | 2943 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); |
| 2944 | 2944 |
| 2945 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector, | 2945 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector, |
| 2946 iteratorMask, expressionType, new ArgumentsTypes.empty()); | 2946 iteratorMask, expressionType, new ArgumentsTypes.empty()); |
| 2947 | 2947 |
| 2948 return handleForInLoop(node, iteratorType, currentSelector, currentMask, | 2948 return handleForInLoop(node, iteratorType, currentSelector, currentMask, |
| 2949 moveNextSelector, moveNextMask); | 2949 moveNextSelector, moveNextMask); |
| 2950 } | 2950 } |
| 2951 } | 2951 } |
| OLD | NEW |