@@ -63,6 +63,8 @@ class StackFrame {
63
63
final MemberEntity member;
64
64
final AsyncMarker asyncMarker;
65
65
final KernelToLocalsMap localsMap;
66
+ // [ir.Let] and [ir.LocalInitializer] bindings.
67
+ final Map <ir.VariableDeclaration , HInstruction > letBindings;
66
68
final KernelToTypeInferenceMap typeInferenceMap;
67
69
final SourceInformationBuilder sourceInformationBuilder;
68
70
final StaticTypeProvider staticTypeProvider;
@@ -72,6 +74,7 @@ class StackFrame {
72
74
this .member,
73
75
this .asyncMarker,
74
76
this .localsMap,
77
+ this .letBindings,
75
78
this .typeInferenceMap,
76
79
this .sourceInformationBuilder,
77
80
this .staticTypeProvider);
@@ -115,10 +118,6 @@ class KernelSsaGraphBuilder extends ir.Visitor
115
118
116
119
final NativeEmitter nativeEmitter;
117
120
118
- // [ir.Let] and [ir.LocalInitializer] bindings.
119
- final Map <ir.VariableDeclaration , HInstruction > letBindings =
120
- < ir.VariableDeclaration , HInstruction > {};
121
-
122
121
/// True if we are visiting the expression of a throw statement; we assume
123
122
/// this is a slow path.
124
123
bool _inExpressionOfThrow = false ;
@@ -160,6 +159,9 @@ class KernelSsaGraphBuilder extends ir.Visitor
160
159
161
160
KernelToLocalsMap get localsMap => _currentFrame.localsMap;
162
161
162
+ Map <ir.VariableDeclaration , HInstruction > get letBindings =>
163
+ _currentFrame.letBindings;
164
+
163
165
JCommonElements get _commonElements => _elementMap.commonElements;
164
166
165
167
KernelToTypeInferenceMap get _typeInferenceMap =>
@@ -192,6 +194,7 @@ class KernelSsaGraphBuilder extends ir.Visitor
192
194
member,
193
195
asyncMarker,
194
196
closedWorld.globalLocalsMap.getLocalsMap (member),
197
+ {},
195
198
new KernelToTypeInferenceMapImpl (member, globalInferenceResults),
196
199
_currentFrame != null
197
200
? _currentFrame.sourceInformationBuilder
@@ -5044,8 +5047,7 @@ class KernelSsaGraphBuilder extends ir.Visitor
5044
5047
}
5045
5048
5046
5049
bool heuristicSayGoodToGo () {
5047
- // Don't inline recursively, directly or indirectly.
5048
- if (function == targetElement) return false ;
5050
+ // Don't inline recursively,
5049
5051
if (_inliningStack.any ((entry) => entry.function == function)) {
5050
5052
return false ;
5051
5053
}
0 commit comments