| 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 2894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2905 | 2905 |
| 2906 TypeInformation visitAsyncForIn(ast.AsyncForIn node) { | 2906 TypeInformation visitAsyncForIn(ast.AsyncForIn node) { |
| 2907 TypeInformation expressionType = visit(node.expression); | 2907 TypeInformation expressionType = visit(node.expression); |
| 2908 | 2908 |
| 2909 Selector currentSelector = Selectors.current; | 2909 Selector currentSelector = Selectors.current; |
| 2910 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node); | 2910 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node); |
| 2911 Selector moveNextSelector = Selectors.moveNext; | 2911 Selector moveNextSelector = Selectors.moveNext; |
| 2912 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); | 2912 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); |
| 2913 | 2913 |
| 2914 js.JavaScriptBackend backend = compiler.backend; | 2914 js.JavaScriptBackend backend = compiler.backend; |
| 2915 Element ctor = backend.helpers.streamIteratorConstructor; | 2915 ConstructorElement ctor = backend.helpers.streamIteratorConstructor; |
| 2916 | 2916 |
| 2917 /// Synthesize a call to the [StreamIterator] constructor. | 2917 /// Synthesize a call to the [StreamIterator] constructor. |
| 2918 TypeInformation iteratorType = handleStaticSend( | 2918 TypeInformation iteratorType = handleStaticSend( |
| 2919 node, null, null, ctor, new ArgumentsTypes([expressionType], null)); | 2919 node, null, null, ctor, new ArgumentsTypes([expressionType], null)); |
| 2920 | 2920 |
| 2921 return handleForInLoop(node, iteratorType, currentSelector, currentMask, | 2921 return handleForInLoop(node, iteratorType, currentSelector, currentMask, |
| 2922 moveNextSelector, moveNextMask); | 2922 moveNextSelector, moveNextMask); |
| 2923 } | 2923 } |
| 2924 | 2924 |
| 2925 TypeInformation visitSyncForIn(ast.SyncForIn node) { | 2925 TypeInformation visitSyncForIn(ast.SyncForIn node) { |
| 2926 TypeInformation expressionType = visit(node.expression); | 2926 TypeInformation expressionType = visit(node.expression); |
| 2927 Selector iteratorSelector = Selectors.iterator; | 2927 Selector iteratorSelector = Selectors.iterator; |
| 2928 TypeMask iteratorMask = inTreeData.typeOfIterator(node); | 2928 TypeMask iteratorMask = inTreeData.typeOfIterator(node); |
| 2929 Selector currentSelector = Selectors.current; | 2929 Selector currentSelector = Selectors.current; |
| 2930 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node); | 2930 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node); |
| 2931 Selector moveNextSelector = Selectors.moveNext; | 2931 Selector moveNextSelector = Selectors.moveNext; |
| 2932 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); | 2932 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); |
| 2933 | 2933 |
| 2934 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector, | 2934 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector, |
| 2935 iteratorMask, expressionType, new ArgumentsTypes.empty()); | 2935 iteratorMask, expressionType, new ArgumentsTypes.empty()); |
| 2936 | 2936 |
| 2937 return handleForInLoop(node, iteratorType, currentSelector, currentMask, | 2937 return handleForInLoop(node, iteratorType, currentSelector, currentMask, |
| 2938 moveNextSelector, moveNextMask); | 2938 moveNextSelector, moveNextMask); |
| 2939 } | 2939 } |
| 2940 } | 2940 } |
| OLD | NEW |