Skip to content

Commit 8a9c58c

Browse files
committed
Append newline to exec code if not present
1 parent 897efaf commit 8a9c58c

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/BuiltinFunctions.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,19 +726,24 @@ PCode compile(VirtualFrame frame, PBytes source, String filename, String mode, O
726726
@Specialization
727727
@TruffleBoundary
728728
PCode compile(String expression, String filename, String mode, Object kwFlags, Object kwDontInherit, Object kwOptimize) {
729+
String code = expression;
729730
PythonContext context = getContext();
730731
ParserMode pm;
731732
if (mode.equals("exec")) {
732733
pm = ParserMode.File;
734+
if (!code.endsWith("\n")) {
735+
code += '\n';
736+
}
733737
} else if (mode.equals("eval")) {
734738
pm = ParserMode.Eval;
735739
} else if (mode.equals("single")) {
736740
pm = ParserMode.Statement;
737741
} else {
738742
throw raise(ValueError, ErrorMessages.COMPILE_MUST_BE);
739743
}
744+
final String codeToCompile = code;
740745
Supplier<CallTarget> createCode = () -> {
741-
Source source = PythonLanguage.newSource(context, expression, filename, mayBeFromFile);
746+
Source source = PythonLanguage.newSource(context, codeToCompile, filename, mayBeFromFile);
742747
return Truffle.getRuntime().createCallTarget((RootNode) getCore().getParser().parse(pm, getCore(), source, null));
743748
};
744749
RootCallTarget ct;

0 commit comments

Comments
 (0)