| 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 | 7 import '../closure.dart' show |
| 8 ClosureClassMap, | 8 ClosureClassMap, |
| 9 ClosureScope; | 9 ClosureScope; |
| 10 import '../common.dart'; | 10 import '../common.dart'; |
| (...skipping 2265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2276 receiverType, currentType, | 2276 receiverType, currentType, |
| 2277 node.expression); | 2277 node.expression); |
| 2278 return handleLoop(node, () { | 2278 return handleLoop(node, () { |
| 2279 visit(node.body); | 2279 visit(node.body); |
| 2280 }); | 2280 }); |
| 2281 } | 2281 } |
| 2282 | 2282 |
| 2283 T visitAsyncForIn(ast.AsyncForIn node) { | 2283 T visitAsyncForIn(ast.AsyncForIn node) { |
| 2284 T expressionType = visit(node.expression); | 2284 T expressionType = visit(node.expression); |
| 2285 | 2285 |
| 2286 Selector currentSelector = elements.getCurrentSelector(node); | 2286 Selector currentSelector = Selectors.current; |
| 2287 TypeMask currentMask = elements.getCurrentTypeMask(node); | 2287 TypeMask currentMask = elements.getCurrentTypeMask(node); |
| 2288 Selector moveNextSelector = elements.getMoveNextSelector(node); | 2288 Selector moveNextSelector = Selectors.moveNext; |
| 2289 TypeMask moveNextMask = elements.getMoveNextTypeMask(node); | 2289 TypeMask moveNextMask = elements.getMoveNextTypeMask(node); |
| 2290 | 2290 |
| 2291 js.JavaScriptBackend backend = compiler.backend; | 2291 js.JavaScriptBackend backend = compiler.backend; |
| 2292 Element ctor = backend.helpers.streamIteratorConstructor; | 2292 Element ctor = backend.helpers.streamIteratorConstructor; |
| 2293 | 2293 |
| 2294 /// Synthesize a call to the [StreamIterator] constructor. | 2294 /// Synthesize a call to the [StreamIterator] constructor. |
| 2295 T iteratorType = handleStaticSend(node, null, null, ctor, | 2295 T iteratorType = handleStaticSend(node, null, null, ctor, |
| 2296 new ArgumentsTypes<T>([expressionType], | 2296 new ArgumentsTypes<T>([expressionType], |
| 2297 null)); | 2297 null)); |
| 2298 | 2298 |
| 2299 return handleForInLoop(node, iteratorType, currentSelector, currentMask, | 2299 return handleForInLoop(node, iteratorType, currentSelector, currentMask, |
| 2300 moveNextSelector, moveNextMask); | 2300 moveNextSelector, moveNextMask); |
| 2301 } | 2301 } |
| 2302 | 2302 |
| 2303 T visitSyncForIn(ast.SyncForIn node) { | 2303 T visitSyncForIn(ast.SyncForIn node) { |
| 2304 T expressionType = visit(node.expression); | 2304 T expressionType = visit(node.expression); |
| 2305 Selector iteratorSelector = elements.getIteratorSelector(node); | 2305 Selector iteratorSelector = Selectors.iterator; |
| 2306 TypeMask iteratorMask = elements.getIteratorTypeMask(node); | 2306 TypeMask iteratorMask = elements.getIteratorTypeMask(node); |
| 2307 Selector currentSelector = elements.getCurrentSelector(node); | 2307 Selector currentSelector = Selectors.current; |
| 2308 TypeMask currentMask = elements.getCurrentTypeMask(node); | 2308 TypeMask currentMask = elements.getCurrentTypeMask(node); |
| 2309 Selector moveNextSelector = elements.getMoveNextSelector(node); | 2309 Selector moveNextSelector = Selectors.moveNext; |
| 2310 TypeMask moveNextMask = elements.getMoveNextTypeMask(node); | 2310 TypeMask moveNextMask = elements.getMoveNextTypeMask(node); |
| 2311 | 2311 |
| 2312 T iteratorType = handleDynamicSend( | 2312 T iteratorType = handleDynamicSend( |
| 2313 node, iteratorSelector, iteratorMask, expressionType, | 2313 node, iteratorSelector, iteratorMask, expressionType, |
| 2314 new ArgumentsTypes<T>.empty()); | 2314 new ArgumentsTypes<T>.empty()); |
| 2315 | 2315 |
| 2316 return handleForInLoop(node, iteratorType, currentSelector, currentMask, | 2316 return handleForInLoop(node, iteratorType, currentSelector, currentMask, |
| 2317 moveNextSelector, moveNextMask); | 2317 moveNextSelector, moveNextMask); |
| 2318 } | 2318 } |
| 2319 } | 2319 } |
| OLD | NEW |