Skip to content

Crash in super() outside a method #2848

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ilevkivskyi opened this issue Feb 11, 2017 · 3 comments · Fixed by #2932
Closed

Crash in super() outside a method #2848

ilevkivskyi opened this issue Feb 11, 2017 · 3 comments · Fixed by #2932

Comments

@ilevkivskyi
Copy link
Member

The simplest repro:

class C:
    a = super().whatever

Crash 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'
@ilevkivskyi
Copy link
Member Author

@JukkaL I have a fix for this but it depends on PR #2847

@JukkaL
Copy link
Collaborator

JukkaL commented 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
Copy link
Member Author

@JukkaL As I promised here is a simple fix #2932

JukkaL pushed a commit that referenced this issue Mar 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants