From 634be82fe99576f7cdd8d9d227475bd2c9a6f47c Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Fri, 23 Oct 2015 15:57:45 +0300 Subject: [PATCH] PY-17331 Consider "class" as reserved word in Python, not "__class__" --- python/psi-api/src/com/jetbrains/python/PyNames.java | 2 +- .../introduceVariable/dontSuggestReservedName.py | 5 +++++ .../python/refactoring/PyIntroduceVariableTest.java | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 python/testData/refactoring/introduceVariable/dontSuggestReservedName.py diff --git a/python/psi-api/src/com/jetbrains/python/PyNames.java b/python/psi-api/src/com/jetbrains/python/PyNames.java index 9a93ac5d84b6..ef36dc73814e 100644 --- a/python/psi-api/src/com/jetbrains/python/PyNames.java +++ b/python/psi-api/src/com/jetbrains/python/PyNames.java @@ -483,7 +483,7 @@ public class PyNames { EXCEPT, IMPORT, PRINT, - __CLASS__, + CLASS, EXEC, IN, RAISE, diff --git a/python/testData/refactoring/introduceVariable/dontSuggestReservedName.py b/python/testData/refactoring/introduceVariable/dontSuggestReservedName.py new file mode 100644 index 000000000000..647334dd5911 --- /dev/null +++ b/python/testData/refactoring/introduceVariable/dontSuggestReservedName.py @@ -0,0 +1,5 @@ +class Class: + pass + + +Class() diff --git a/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceVariableTest.java b/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceVariableTest.java index 551cc909511f..f23bc05869b1 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceVariableTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceVariableTest.java @@ -87,6 +87,12 @@ public class PyIntroduceVariableTest extends PyIntroduceTestCase { assertDoesntContain(suggestions, "select"); } + // PY-17331 + public void testDontSuggestReservedName() { + final Collection suggestions = buildSuggestions(PyCallExpression.class); + assertDoesntContain(suggestions, "class"); + } + public void testSuggestNamesNotInScope() { // PY-4605 final Collection strings = buildSuggestions(PyExpression.class); assertTrue(strings.contains("myfunc1"));