python-rope / ropevim

vim mode that uses rope library to provide features like python refactorings and code-assists
GNU General Public License v2.0
247 stars 34 forks source link

RopeRenameCurrentModule results in `None` related error in pyscopes #95

Closed eivindjahren closed 2 years ago

eivindjahren commented 2 years ago

When running RopeRenameCurrentModule in neovim 0.7.2, I get the following error:

Error detected while processing function RopeRenameCurrentModule[1]..provider#python3#Call:
line   18:
Error invoking 'python_execute' on channel 3 (python3-script-host):
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "~/.local/lib/python3.10/site-packages/ropemode/decorators.py", line 54, in newfunc
    return func(*args, **kwds)
  File "~/.local/lib/python3.10/site-packages/ropemode/interface.py", line 52, in do_refactor
    refactoring(self, self.env).show(initial_asking=initial_asking)
  File "~/.local/lib/python3.10/site-packages/ropemode/refactor.py", line 43, in show
    changes = runtask(self.env, calculate, name=name)
  File "~/.local/lib/python3.10/site-packages/ropemode/refactor.py", line 469, in runtask
    return RunTask(env, command, name, interrupts)()
  File "~/.local/lib/python3.10/site-packages/ropemode/refactor.py", line 489, in __call__
    result = self.task(handle)
  File "~/.local/lib/python3.10/site-packages/ropemode/refactor.py", line 41, in calculate
    return self._calculate_changes(result, handle)
  File "~/.local/lib/python3.10/site-packages/ropemode/refactor.py", line 122, in _calculate_changes
    return self.renamer.get_changes(task_handle=task_handle, **values)
  File "~/.local/lib/python3.10/site-packages/rope/refactor/rename.py", line 121, in get_changes
    new_content = rename_in_module(finder, new_name, resource=file_)
  File "~/.local/lib/python3.10/site-packages/rope/refactor/rename.py", line 235, in rename_in_module
    for occurrence in occurrences_finder.find_occurrences(resource, pymodule):
  File "~/.local/lib/python3.10/site-packages/rope/refactor/occurrences.py", line 80, in find_occurrences
    result = filter(occurrence)
  File "~/.local/lib/python3.10/site-packages/rope/refactor/occurrences.py", line 224, in __call__
    if same_pyname(self.pyname, occurrence.get_pyname()):
  File "~/.local/lib/python3.10/site-packages/rope/base/utils/__init__.py", line 12, in _wrapper
    setattr(self, name, func(self, *args, **kwds))
  File "~/.local/lib/python3.10/site-packages/rope/refactor/occurrences.py", line 147, in get_pyname
    return self.tools.name_finder.get_pyname_at(self.offset)
  File "~/.local/lib/python3.10/site-packages/rope/base/evaluate.py", line 83, in get_pyname_at
    return self.get_primary_and_pyname_at(offset)[1]
  File "~/.local/lib/python3.10/site-packages/rope/base/evaluate.py", line 87, in get_primary_and_pyname_at
    holding_scope = self.module_scope.get_inner_scope_for_offset(offset)
  File "~/.local/lib/python3.10/site-packages/rope/base/pyscopes.py", line 158, in get_inner_scope_for_offset
    return self._scope_finder.get_holding_scope_for_offset(self, offset)
  File "~/.local/lib/python3.10/site-packages/rope/base/pyscopes.py", line 315, in get_holding_scope_for_offset
    if inner_scope.in_region(offset):
  File "~/.local/lib/python3.10/site-packages/rope/base/pyscopes.py", line 117, in in_region
    return region[0] < offset < region[1]
TypeError: '<' not supported between instances of 'NoneType' and 'int'
eivindjahren commented 2 years ago

This seems to be an issue with rope, opening a new issue there.