diff options
author | Milan Rossa <rossa.milan@gmail.com> | 2019-08-19 14:16:33 +0200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2019-08-19 23:50:30 +1000 |
commit | ae6fe8b43c08abe215dde355e04e561ad2dd1808 (patch) | |
tree | 77ed190558c11f3747cd4a1260a26a2f449d8b7b | |
parent | 7d851a27f146188752e89bb026021fb8d3985395 (diff) | |
download | micropython-ae6fe8b43c08abe215dde355e04e561ad2dd1808.tar.gz micropython-ae6fe8b43c08abe215dde355e04e561ad2dd1808.zip |
py/compile: Improve the line numbering precision for comprehensions.
The line number for comprehensions is now always reported as the correct
global location in the script, instead of just "line 1".
-rw-r--r-- | py/compile.c | 3 | ||||
-rw-r--r-- | tests/cmdline/cmd_showbc.py.exp | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/py/compile.c b/py/compile.c index 27b706c8fe..c0ae3de114 100644 --- a/py/compile.c +++ b/py/compile.c @@ -3112,6 +3112,9 @@ STATIC void compile_scope(compiler_t *comp, scope_t *scope, pass_kind_t pass) { scope->num_pos_args = 1; } + // Set the source line number for the start of the comprehension + EMIT_ARG(set_source_line, pns->source_line); + if (scope->kind == SCOPE_LIST_COMP) { EMIT_ARG(build, 0, MP_EMIT_BUILD_LIST); } else if (scope->kind == SCOPE_DICT_COMP) { diff --git a/tests/cmdline/cmd_showbc.py.exp b/tests/cmdline/cmd_showbc.py.exp index 8d36b89df7..8d5d2ffe30 100644 --- a/tests/cmdline/cmd_showbc.py.exp +++ b/tests/cmdline/cmd_showbc.py.exp @@ -449,6 +449,7 @@ arg names: * * * (N_STATE 9) (N_EXC_STACK 0) bc=-\\d\+ line=1 + bc=0 line=59 00 LOAD_NULL 01 LOAD_FAST 2 02 LOAD_NULL @@ -471,6 +472,7 @@ arg names: * * * (N_STATE 10) (N_EXC_STACK 0) bc=-\\d\+ line=1 + bc=0 line=60 00 BUILD_LIST 0 02 LOAD_FAST 2 03 GET_ITER_STACK |