You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've encountered a bug when running mypy on a file with an assignment expression contained within a list comprehension.
# mwe.py
lst = [1, 2, 3, 4]
processed = [e for elt in lst if (e := elt - 1) > 1]
print(processed)
I am running the following:
mypy version: 0.790+dev.068594eb38fc550d834b7e61745177c423f2b224
CPython version: 3.8.3, installed with anaconda
Here is the traceback:
$ mypy --show-traceback mwe.py
mwe.py:3: error: INTERNAL ERROR -- Please try using mypy master on Github:
https://mypy.rtfd.io/en/latest/common_issues.html#using-a-development-mypy-build
Please report a bug at https://github.com/python/mypy/issues
version: 0.790+dev.068594eb38fc550d834b7e61745177c423f2b224
Traceback (most recent call last):
File "/home/jbss/anaconda3/envs/tmp/bin/mypy", line 8, in <module>
sys.exit(console_entry())
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/__main__.py", line 8, in console_entry
main(None, sys.stdout, sys.stderr)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/main.py", line 89, in main
res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/build.py", line 180, in build
result = _build(
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/build.py", line 252, in _build
graph = dispatch(sources, manager, stdout)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/build.py", line 2626, in dispatch
process_graph(graph, manager)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/build.py", line 2949, in process_graph
process_stale_scc(graph, scc, manager)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/build.py", line 3041, in process_stale_scc
mypy.semanal_main.semantic_analysis_for_scc(graph, scc, manager.errors)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal_main.py", line 78, in semantic_analysis_for_scc
process_top_levels(graph, scc, patches)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal_main.py", line 199, in process_top_levels
deferred, incomplete, progress = semantic_analyze_target(next_id, state,
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal_main.py", line 326, in semantic_analyze_target
analyzer.refresh_partial(refresh_node,
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 357, in refresh_partial
self.refresh_top_level(node)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 368, in refresh_top_level
self.accept(d)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 4691, in accept
node.accept(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/nodes.py", line 1063, in accept
return visitor.visit_assignment_stmt(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 1906, in visit_assignment_stmt
s.rvalue.accept(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/nodes.py", line 1946, in accept
return visitor.visit_list_comprehension(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 3755, in visit_list_comprehension
expr.generator.accept(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/nodes.py", line 1933, in accept
return visitor.visit_generator_expr(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 3770, in visit_generator_expr
self.analyze_comp_for(expr)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 3790, in analyze_comp_for
cond.accept(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/nodes.py", line 1762, in accept
return visitor.visit_comparison_expr(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 3648, in visit_comparison_expr
operand.accept(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/nodes.py", line 1619, in accept
return visitor.visit_assignment_expr(self)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 1896, in visit_assignment_expr
self.analyze_lvalue(s.target, escape_comprehensions=True)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 2565, in analyze_lvalue
self.analyze_name_lvalue(lval, explicit_type, is_final, escape_comprehensions)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 2616, in analyze_name_lvalue
added = self.add_symbol(name, var, lvalue, escape_comprehensions=escape_comprehensions)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 4217, in add_symbol
return self.add_symbol_table_node(name, symbol, context, can_defer, escape_comprehensions)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 4265, in add_symbol_table_node
names = self.current_symbol_table(escape_comprehensions=escape_comprehensions)
File "/home/jbss/anaconda3/envs/tmp/lib/python3.8/site-packages/mypy/semanal.py", line 4553, in current_symbol_table
assert names is not None
AssertionError:
mwe.py:3: : note: use --pdb to drop into pdb
The text was updated successfully, but these errors were encountered:
out of curiosity I've been looking into this and think I have an idea of what's causing it. Planning to open a PR with some regression tests and a fix!
I've encountered a bug when running mypy on a file with an assignment expression contained within a list comprehension.
I am running the following:
mypy version: 0.790+dev.068594eb38fc550d834b7e61745177c423f2b224
CPython version: 3.8.3, installed with anaconda
Here is the traceback:
The text was updated successfully, but these errors were encountered: