diff --git a/jedi/api/refactoring.py b/jedi/api/refactoring.py index 04558bd6..de79a995 100644 --- a/jedi/api/refactoring.py +++ b/jedi/api/refactoring.py @@ -114,6 +114,9 @@ def rename(grammar, definitions, new_name): file_renames = set() file_tree_name_map = {} + if not definitions: + raise RefactoringError("There is no name under the cursor") + for d in definitions: tree_name = d._name.tree_name if d.type == 'module' and tree_name is None: @@ -129,7 +132,7 @@ def rename(grammar, definitions, new_name): def inline(grammar, names): if not names: - raise RefactoringError("There's no name under the cursor") + raise RefactoringError("There is no name under the cursor") if any(n.api_type == 'module' for n in names): raise RefactoringError("Cannot inline imports or modules.") if any(n.tree_name is None for n in names): diff --git a/test/refactor/rename.py b/test/refactor/rename.py index 6926b524..2b8a4e5e 100644 --- a/test/refactor/rename.py +++ b/test/refactor/rename.py @@ -3,6 +3,11 @@ Test coverage for renaming is mostly being done by testing `Script.get_references`. """ +# -------------------------------------------------- no-name +#? 0 error {'new_name': 'blabla'} +1 +# ++++++++++++++++++++++++++++++++++++++++++++++++++ +There is no name under the cursor # -------------------------------------------------- simple def test1(): #? 7 {'new_name': 'blabla'}