@@ -148,14 +148,18 @@ static PFrame alreadyEscapedFrame(VirtualFrame frame, Node location, boolean mar
148
148
return pyFrame ;
149
149
}
150
150
151
- @ Specialization (guards = { "!inClassBody(frameToMaterialize)" }, replaces = {"freshPFrame" , "alreadyEscapedFrame" })
151
+ @ Specialization (replaces = {"freshPFrame" , "alreadyEscapedFrame" })
152
152
static PFrame notInClassBody (VirtualFrame frame , Node location , boolean markAsEscaped , boolean forceSync , Frame frameToMaterialize ,
153
153
@ Shared ("factory" ) @ Cached PythonObjectFactory factory ,
154
154
@ Shared ("syncValuesNode" ) @ Cached SyncFrameValuesNode syncValuesNode ) {
155
155
if (getPFrame (frameToMaterialize ) != null ) {
156
156
return alreadyEscapedFrame (frame , location , markAsEscaped , forceSync , frameToMaterialize , syncValuesNode );
157
157
} else {
158
- return freshPFrame (frame , location , markAsEscaped , forceSync , frameToMaterialize , factory , syncValuesNode );
158
+ if (inClassBody (frameToMaterialize )) {
159
+ return freshPFrameInClassBody (frame , location , markAsEscaped , forceSync , frameToMaterialize , factory , syncValuesNode );
160
+ } else {
161
+ return freshPFrame (frame , location , markAsEscaped , forceSync , frameToMaterialize , factory , syncValuesNode );
162
+ }
159
163
}
160
164
}
161
165
0 commit comments