diff --git a/jedi/api/refactoring.py b/jedi/api/refactoring.py index 4ac0b2aa..e8bb5c62 100644 --- a/jedi/api/refactoring.py +++ b/jedi/api/refactoring.py @@ -149,10 +149,10 @@ def inline(grammar, names): expr_stmt = tree_name.get_definition() if expr_stmt.type != 'expr_stmt': type_ = dict( - funcdef='a function', - classdef='a class', + funcdef='function', + classdef='class', ).get(expr_stmt.type, expr_stmt.type) - raise RefactoringError("Cannot inline %s" % type_) + raise RefactoringError("Cannot inline a %s" % type_) if len(expr_stmt.get_defined_names(include_setitem=True)) > 1: raise RefactoringError("Cannot inline a statement with multiple definitions") diff --git a/test/refactor/inline.py b/test/refactor/inline.py index 18d43894..a6c11264 100644 --- a/test/refactor/inline.py +++ b/test/refactor/inline.py @@ -65,6 +65,25 @@ from import_tree import some_mod test(some_mod) # ++++++++++++++++++++++++++++++++++++++++++++++++++ Cannot inline imports or modules +# -------------------------------------------------- class +class A: pass +#? 5 error +test(A) +# ++++++++++++++++++++++++++++++++++++++++++++++++++ +Cannot inline a class +# -------------------------------------------------- function +def foo(a): + return a + 1 +#? 5 error +test(foo(1)) +# ++++++++++++++++++++++++++++++++++++++++++++++++++ +Cannot inline a function +# -------------------------------------------------- for-stmt +for x in []: + #? 9 error + test(x) +# ++++++++++++++++++++++++++++++++++++++++++++++++++ +Cannot inline a for_stmt # -------------------------------------------------- simple def test(): #? 4