Repository navigation
Crash in super() outside a method #2848
Copy link
Copy link
Closed
Labels
Description
The simplest repro:
class C:
a = super().whateverCrash also happens for working Python code with single argument super() outside methods:
Traceback (most recent call last):
File "/usr/local/bin/mypy", line 6, in <module>
main(__file__)
File "/usr/local/lib/python3.4/dist-packages/mypy/main.py", line 42, in main
res = type_check_only(sources, bin_dir, options)
File "/usr/local/lib/python3.4/dist-packages/mypy/main.py", line 86, in type_check_only
options=options)
File "/usr/local/lib/python3.4/dist-packages/mypy/build.py", line 183, in build
dispatch(sources, manager)
File "/usr/local/lib/python3.4/dist-packages/mypy/build.py", line 1531, in dispatch
process_graph(graph, manager)
File "/usr/local/lib/python3.4/dist-packages/mypy/build.py", line 1768, in process_graph
process_stale_scc(graph, scc)
File "/usr/local/lib/python3.4/dist-packages/mypy/build.py", line 1847, in process_stale_scc
graph[id].type_check_first_pass()
File "/usr/local/lib/python3.4/dist-packages/mypy/build.py", line 1453, in type_check_first_pass
self.type_checker.check_first_pass()
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 167, in check_first_pass
self.accept(d)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 233, in accept
stmt.accept(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/nodes.py", line 717, in accept
return visitor.visit_class_def(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 964, in visit_class_def
self.accept(defn.defs)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 233, in accept
stmt.accept(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/nodes.py", line 778, in accept
return visitor.visit_block(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 1057, in visit_block
self.accept(s)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 233, in accept
stmt.accept(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/nodes.py", line 819, in accept
return visitor.visit_assignment_stmt(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 1064, in visit_assignment_stmt
self.check_assignment(s.lvalues[-1], s.rvalue, s.type is None, s.new_syntax)
File "/usr/local/lib/python3.4/dist-packages/mypy/checker.py", line 1140, in check_assignment
self.infer_variable_type(inferred, lvalue, self.expr_checker.accept(rvalue),
File "/usr/local/lib/python3.4/dist-packages/mypy/checkexpr.py", line 2015, in accept
typ = node.accept(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/nodes.py", line 1492, in accept
return visitor.visit_super_expr(self)
File "/usr/local/lib/python3.4/dist-packages/mypy/checkexpr.py", line 1835, in visit_super_expr
t = self.analyze_super(e, False)
File "/usr/local/lib/python3.4/dist-packages/mypy/checkexpr.py", line 1854, in analyze_super
args = self.chk.scope.top_function().arguments
AttributeError: 'NoneType' object has no attribute 'arguments'
Reactions are currently unavailable
Activity
ilevkivskyi commentedon Feb 27, 2017
@JukkaL I have a fix for this but it depends on PR #2847
JukkaL commentedon Feb 27, 2017
Ok -- I'll see if I can get #2847 merged today, before the release. This issue would be nice to fix as well.
ilevkivskyi commentedon Mar 1, 2017
@JukkaL As I promised here is a simple fix #2932
Fix crash in super() outside methods (#2932)