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

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

Issue 2811993006: dart2js: type analysis: yield escapes its argument (Closed)
Patch Set: comment Created 3 years, 8 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/names.dart'; 8 import '../common/names.dart';
9 import '../compiler.dart'; 9 import '../compiler.dart';
10 import '../constants/expressions.dart'; 10 import '../constants/expressions.dart';
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 */ 912 */
913 TypeInformation registerAwait(ast.Node node, TypeInformation argument) { 913 TypeInformation registerAwait(ast.Node node, TypeInformation argument) {
914 AwaitTypeInformation info = 914 AwaitTypeInformation info =
915 new AwaitTypeInformation(types.currentMember, node); 915 new AwaitTypeInformation(types.currentMember, node);
916 info.addAssignment(argument); 916 info.addAssignment(argument);
917 types.allocatedTypes.add(info); 917 types.allocatedTypes.add(info);
918 return info; 918 return info;
919 } 919 }
920 920
921 /** 921 /**
922 * Registers a call to yield with an expression of type [argumentType] as
923 * argument.
924 */
925 TypeInformation registerYield(ast.Node node, TypeInformation argument) {
926 YieldTypeInformation info =
927 new YieldTypeInformation(types.currentMember, node);
928 info.addAssignment(argument);
929 types.allocatedTypes.add(info);
930 return info;
931 }
932
933 /**
922 * Registers that [caller] calls [closure] with [arguments]. 934 * Registers that [caller] calls [closure] with [arguments].
923 * 935 *
924 * [sideEffects] will be updated to incorporate the potential 936 * [sideEffects] will be updated to incorporate the potential
925 * callees' side effects. 937 * callees' side effects.
926 * 938 *
927 * [inLoop] tells whether the call happens in a loop. 939 * [inLoop] tells whether the call happens in a loop.
928 */ 940 */
929 TypeInformation registerCalledClosure( 941 TypeInformation registerCalledClosure(
930 ast.Node node, 942 ast.Node node,
931 Selector selector, 943 Selector selector,
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 /** 1073 /**
1062 * Records that the captured variable [local] is read. 1074 * Records that the captured variable [local] is read.
1063 */ 1075 */
1064 void recordCapturedLocalRead(Local local) {} 1076 void recordCapturedLocalRead(Local local) {}
1065 1077
1066 /** 1078 /**
1067 * Records that the variable [local] is being updated. 1079 * Records that the variable [local] is being updated.
1068 */ 1080 */
1069 void recordLocalUpdate(Local local, TypeInformation type) {} 1081 void recordLocalUpdate(Local local, TypeInformation type) {}
1070 } 1082 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/builder.dart ('k') | pkg/compiler/lib/src/inferrer/node_tracer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698