srusskih / SublimeJEDI

awesome Python autocompletion with SublimeText
MIT License
938 stars 109 forks source link

Random traceback in console #183

Closed FichteFoll closed 6 years ago

FichteFoll commented 9 years ago

I honestly don't know how to interpret this right now and I don't remember at all how to reproduce since this was probably a day ago and I didn't even notice. Just putting this up here in case it might be useful. It looks like a jedi issue though.

Jedi - Python autocompletion.sublime_jedi.utils: 2015-07-06 20:35:52,151: ERROR   : `JediFacade.get_autocomplete` failed
Traceback (most recent call last):
  File "..\jedi\cache.py", line 141, in wrapper
    return getattr(self, name)
AttributeError: 'UserContextParser' object has no attribute '_user_stmt'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "..\jedi\cache.py", line 141, in wrapper
    return getattr(self, name)
AttributeError: 'UserContextParser' object has no attribute '__parser'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "..\jedi\parser\__init__.py", line 294, in clear_names
    clear_names(c.children)
AttributeError: 'Name' object has no attribute 'children'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "daemon.py", line 121, in get
    return getattr(self, 'get_' + action)()
  File "daemon.py", line 139, in get_autocomplete
    data = self._parameters_for_completion() or []
  File "daemon.py", line 171, in _parameters_for_completion
    in_call = self.script.call_signatures()[0]
  File "..\jedi\api\__init__.py", line 509, in call_signatures
    stmt = self._get_under_cursor_stmt(call_txt, start_pos)
  File "..\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "..\jedi\api\__init__.py", line 303, in _get_under_cursor_stmt
    user_stmt = self._parser.user_stmt()
  File "..\jedi\cache.py", line 143, in wrapper
    result = func(self)
  File "..\jedi\parser\user_context.py", line 286, in user_stmt
    module = self.module()
  File "..\jedi\parser\user_context.py", line 332, in module
    return self._parser().module
  File "..\jedi\cache.py", line 143, in wrapper
    result = func(self)
  File "..\jedi\parser\user_context.py", line 277, in _parser
    parser = FastParser(self._grammar, self._source, self._path)
  File "..\jedi\parser\fast.py", line 109, in __call__
    p.update(source)
  File "..\jedi\parser\fast.py", line 257, in update
    self._parse(source)
  File "..\jedi\parser\fast.py", line 383, in _parse
    line_offset, nodes)
  File "..\jedi\parser\fast.py", line 435, in _get_node
    p = Parser(self._grammar, parser_code, self.module_path, tokenizer=tokenizer)
  File "..\jedi\parser\__init__.py", line 155, in __init__
    self.module = p.parse(self._tokenize(tokenizer))
  File "..\jedi\parser\pgen2\parse.py", line 106, in parse
    if self.addtoken(type, value, prefix, start_pos):
  File "..\jedi\parser\pgen2\parse.py", line 170, in addtoken
    value, start_pos, prefix, self.addtoken)
  File "..\jedi\parser\__init__.py", line 269, in error_recovery
    self._stack_removal(grammar, stack, index + 1, value, start_pos)
  File "..\jedi\parser\__init__.py", line 304, in _stack_removal
    clear_names(children=node[1])
  File "..\jedi\parser\__init__.py", line 294, in clear_names
    clear_names(c.children)
  File "..\jedi\parser\__init__.py", line 294, in clear_names
    clear_names(c.children)
  File "..\jedi\parser\__init__.py", line 298, in clear_names
    self._scope_names_stack[-1][c.value].remove(c)
KeyError: 'x'