Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Side by Side Diff: pkg/compiler/lib/src/inferrer/builder.dart

Issue 2675103003: Refactor BackendHelpers to be reusageable with KernelWorldBuilder (Closed)
Patch Set: Updated cf. comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/elements/modelx.dart ('k') | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/elements/modelx.dart ('k') | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698