From 682d2ad537074f7bdb2f5cda4051dc966835729a Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Wed, 4 Sep 2013 18:27:32 +0400 Subject: [PATCH] Changed priority of shadowed names inspection to weak warning --- python/src/META-INF/python-plugin-core.xml | 2 +- .../PyShadowingNamesInspection.java | 4 +- .../PyShadowingNamesInspection/test.py | 42 +++++++++---------- .../RenameFunctionShadowingBuiltins.py | 2 +- .../inspections/RenameShadowingBuiltins.py | 2 +- .../com/jetbrains/python/PyQuickFixTest.java | 21 +++++++--- 6 files changed, 42 insertions(+), 31 deletions(-) diff --git a/python/src/META-INF/python-plugin-core.xml b/python/src/META-INF/python-plugin-core.xml index 66faa91f4a0b..12f60d8d6362 100644 --- a/python/src/META-INF/python-plugin-core.xml +++ b/python/src/META-INF/python-plugin-core.xml @@ -323,7 +323,7 @@ - + diff --git a/python/src/com/jetbrains/python/inspections/PyShadowingNamesInspection.java b/python/src/com/jetbrains/python/inspections/PyShadowingNamesInspection.java index f6ef67ae1583..5c48291a67f6 100644 --- a/python/src/com/jetbrains/python/inspections/PyShadowingNamesInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyShadowingNamesInspection.java @@ -107,7 +107,7 @@ public class PyShadowingNamesInspection extends PyInspection { @NotNull PsiElement builtin) { if (!PyUtil.inSameFile(builtin, element)) { registerProblem(problemElement, String.format("Shadows built-in name '%s'", name), - ProblemHighlightType.GENERIC_ERROR_OR_WARNING, null, new PyRenameElementQuickFix(), + ProblemHighlightType.WEAK_WARNING, null, new PyRenameElementQuickFix(), new PyIgnoreBuiltinQuickFix(name)); } } @@ -125,7 +125,7 @@ public class PyShadowingNamesInspection extends PyInspection { final PsiElement resolved = processor.getResult(); if (resolved != null) { registerProblem(problemElement, String.format("Shadows name '%s' from outer scope", name), - ProblemHighlightType.GENERIC_ERROR_OR_WARNING, null, new PyRenameElementQuickFix()); + ProblemHighlightType.WEAK_WARNING, null, new PyRenameElementQuickFix()); } } } diff --git a/python/testData/inspections/PyShadowingNamesInspection/test.py b/python/testData/inspections/PyShadowingNamesInspection/test.py index 9519479763a2..076cd0b5d7bc 100644 --- a/python/testData/inspections/PyShadowingNamesInspection/test.py +++ b/python/testData/inspections/PyShadowingNamesInspection/test.py @@ -1,37 +1,37 @@ def test_import_builtin_names(): import float from foo import float - from bar import baz as float + from bar import baz as float def test_builtin_function_parameters(): - def test1(x, _, len, file=None): + def test1(x, _, len, file=None): pass def test_builtin_function_name(): - def list(): + def list(): pass def test_builtin_assignment_targets(): foo = 2 - list = [] - for int in range(10): + list = [] + for int in range(10): print(int) - range = [] - list, _ = (1, 2) - return [int for int in range(10)] + range = [] + list, _ = (1, 2) + return [int for int in range(10)] def test_builtin_class_name(): - class list(object): + class list(object): pass def test_builtin_method_name(): class C: - def list(self): + def list(self): pass @@ -47,18 +47,18 @@ def test_builtin_qualified_name(): # PY-10164 def test_builtin_class_attribute(): class C: - id = 1 + id = 1 def test_outer_function(): foo = 1 def bar(): - foo, bar = 1, 2 - def baz(foo, bar, baz): + foo, bar = 1, 2 + def baz(foo, bar, baz): pass def nested(): - def baz(foo): - bar = 1 + def baz(foo): + bar = 1 def test_outer_class(): @@ -68,16 +68,16 @@ def test_outer_class(): class C(object): def foo(self): def foo(): - def bar(): - class C: - def baz(self): + def bar(): + class C: + def baz(self): pass def bar(): pass - baz = 2 + baz = 2 - def spam(self): + def spam(self): pass - quux = 1 + quux = 1 diff --git a/python/testData/inspections/RenameFunctionShadowingBuiltins.py b/python/testData/inspections/RenameFunctionShadowingBuiltins.py index ed54b1c887d9..68e5e014bbd4 100644 --- a/python/testData/inspections/RenameFunctionShadowingBuiltins.py +++ b/python/testData/inspections/RenameFunctionShadowingBuiltins.py @@ -1,4 +1,4 @@ -def id(x): +def id(x): return x diff --git a/python/testData/inspections/RenameShadowingBuiltins.py b/python/testData/inspections/RenameShadowingBuiltins.py index f22217991759..617c440d07db 100644 --- a/python/testData/inspections/RenameShadowingBuiltins.py +++ b/python/testData/inspections/RenameShadowingBuiltins.py @@ -1,3 +1,3 @@ def f(name): - file = open(name, 'rb') + file = open(name, 'rb') return file.read() diff --git a/python/testSrc/com/jetbrains/python/PyQuickFixTest.java b/python/testSrc/com/jetbrains/python/PyQuickFixTest.java index b1c50969d13e..a1b195d9b8df 100644 --- a/python/testSrc/com/jetbrains/python/PyQuickFixTest.java +++ b/python/testSrc/com/jetbrains/python/PyQuickFixTest.java @@ -431,15 +431,26 @@ public class PyQuickFixTest extends PyTestCase { // PY-8788 public void testRenameShadowingBuiltins() { - doInspectionTest("RenameShadowingBuiltins.py", PyShadowingNamesInspection.class, - "Rename element", true, true); + final String fileName = "RenameShadowingBuiltins.py"; + myFixture.configureByFile(fileName); + myFixture.enableInspections(PyShadowingNamesInspection.class); + myFixture.checkHighlighting(true, false, true); + final IntentionAction intentionAction = myFixture.getAvailableIntention("Rename element"); + assertNotNull(intentionAction); + myFixture.launchAction(intentionAction); + myFixture.checkResultByFile(graftBeforeExt(fileName, "_after")); } // PY-8788 public void testRenameFunctionShadowingBuiltins() { - doInspectionTest("RenameFunctionShadowingBuiltins.py", PyShadowingNamesInspection.class, - "Rename element", true, true); - + final String fileName = "RenameFunctionShadowingBuiltins.py"; + myFixture.configureByFile(fileName); + myFixture.enableInspections(PyShadowingNamesInspection.class); + myFixture.checkHighlighting(true, false, true); + final IntentionAction intentionAction = myFixture.getAvailableIntention("Rename element"); + assertNotNull(intentionAction); + myFixture.launchAction(intentionAction); + myFixture.checkResultByFile(graftBeforeExt(fileName, "_after")); } @Override