summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--py/runtime.c2
-rw-r--r--tests/basics/builtin_compile.py22
2 files changed, 10 insertions, 14 deletions
diff --git a/py/runtime.c b/py/runtime.c
index 38da2f453..c12271f4e 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -1473,7 +1473,7 @@ mp_obj_t mp_parse_compile_execute(mp_lexer_t *lex, mp_parse_input_kind_t parse_i
if (nlr_push(&nlr) == 0) {
qstr source_name = lex->source_name;
mp_parse_tree_t parse_tree = mp_parse(lex, parse_input_kind);
- mp_obj_t module_fun = mp_compile(&parse_tree, source_name, false);
+ mp_obj_t module_fun = mp_compile(&parse_tree, source_name, parse_input_kind == MP_PARSE_SINGLE_INPUT);
mp_obj_t ret;
if (MICROPY_PY_BUILTINS_COMPILE && globals == NULL) {
diff --git a/tests/basics/builtin_compile.py b/tests/basics/builtin_compile.py
index bf272aca1..a2f2cbe55 100644
--- a/tests/basics/builtin_compile.py
+++ b/tests/basics/builtin_compile.py
@@ -1,11 +1,10 @@
# test compile builtin
-def have_compile():
- try:
- compile
- return True
- except NameError:
- return False
+try:
+ compile
+except NameError:
+ print("SKIP")
+ raise SystemExit
def test():
global x
@@ -26,8 +25,9 @@ def test():
exec(c, {}, {"x":3})
# single/eval mode
- exec(compile('print(1 + 1)', 'file', 'single'))
- print(eval(compile('1 + 1', 'file', 'eval')))
+ exec(compile("if 1: 10 + 1\n", "file", "single"))
+ exec(compile("print(10 + 2)", "file", "single"))
+ print(eval(compile("10 + 3", "file", "eval")))
# bad mode
try:
@@ -42,8 +42,4 @@ def test():
print("NameError")
print(x) # check 'x' still exists as a global
-if have_compile():
- test()
-else:
- print("SKIP")
- raise SystemExit
+test()