From d4aa583e169500b83fab7c23a2fe9c4db81c4f9c Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 14 May 2020 23:08:31 +0200 Subject: [PATCH] Fix inline case where a name was removed without the code being used, fixes #1582 --- jedi/api/refactoring/__init__.py | 2 ++ test/refactor/inline.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/jedi/api/refactoring/__init__.py b/jedi/api/refactoring/__init__.py index 61f6763c..f05517d2 100644 --- a/jedi/api/refactoring/__init__.py +++ b/jedi/api/refactoring/__init__.py @@ -173,6 +173,8 @@ def inline(inference_state, names): raise RefactoringError("No definition found to inline") if len(definitions) > 1: raise RefactoringError("Cannot inline a name with multiple definitions") + if len(names) == 1: + raise RefactoringError("There are no references to this name") tree_name = definitions[0].tree_name diff --git a/test/refactor/inline.py b/test/refactor/inline.py index a506ec0e..d881b620 100644 --- a/test/refactor/inline.py +++ b/test/refactor/inline.py @@ -3,6 +3,11 @@ 1 # ++++++++++++++++++++++++++++++++++++++++++++++++++ There is no name under the cursor +# -------------------------------------------------- no-reference-error +#? 0 error +a = 1 +# ++++++++++++++++++++++++++++++++++++++++++++++++++ +There are no references to this name # -------------------------------------------------- multi-equal-error def test(): #? 4 error