Skip to content

Commit 694ad91

Browse files
committed
fix createFuncDef when no free vars are present
1 parent 2b40961 commit 694ad91

File tree

1 file changed

+15
-19
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/code

1 file changed

+15
-19
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/code/CodeNodes.java

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -192,28 +192,24 @@ private static String createFuncdef(byte[] codestring, Object[] freevars, String
192192
CompilerAsserts.neverPartOfCompilation();
193193
String codeStr = new String(codestring);
194194
boolean isLambda = codeStr.trim().startsWith("lambda");
195-
if (freevars.length > 0) {
196-
// we build an outer function to provide the initial scoping
197-
String outernme = "_____" + System.nanoTime();
198-
StringBuilder sb = new StringBuilder();
199-
sb.append("def ").append(outernme).append("():\n");
200-
for (Object f : freevars) {
201-
String freevar = CastToJavaStringNode.getUncached().execute(f);
202-
if (freevar != null) {
203-
sb.append(" ").append(freevar).append(" = None\n");
204-
}
195+
// we build an outer function to provide the initial scoping
196+
String outernme = "_____" + System.nanoTime();
197+
StringBuilder sb = new StringBuilder();
198+
sb.append("def ").append(outernme).append("():\n");
199+
for (Object f : freevars) {
200+
String freevar = CastToJavaStringNode.getUncached().execute(f);
201+
if (freevar != null) {
202+
sb.append(" ").append(freevar).append(" = None\n");
205203
}
206-
if (isLambda) {
207-
sb.append(" ").append("return ").append(codeStr);
208-
} else {
209-
sb.append(" ").append(codeStr).append("\n");
210-
sb.append(" ").append("return ").append(name);
211-
}
212-
sb.append("\n\n").append(outernme).append("()");
213-
return sb.toString();
204+
}
205+
if (isLambda) {
206+
sb.append(" ").append("return ").append(codeStr);
214207
} else {
215-
return codeStr;
208+
sb.append(" ").append(codeStr).append("\n");
209+
sb.append(" ").append("return ").append(name);
216210
}
211+
sb.append("\n\n").append(outernme).append("()");
212+
return sb.toString();
217213
}
218214

219215
private static Signature createSignature(int flags, int argcount, int kwonlyargcount, Object[] varnames) {

0 commit comments

Comments
 (0)