diff --git a/python/python-psi-impl/resources/inspectionDescriptions/PyUnusedLocalInspection.html b/python/python-psi-impl/resources/inspectionDescriptions/PyUnusedLocalVariableInspection.html
similarity index 100%
rename from python/python-psi-impl/resources/inspectionDescriptions/PyUnusedLocalInspection.html
rename to python/python-psi-impl/resources/inspectionDescriptions/PyUnusedLocalVariableInspection.html
diff --git a/python/python-psi-impl/resources/inspectionDescriptions/metaInformation.json b/python/python-psi-impl/resources/inspectionDescriptions/metaInformation.json
index 8eaa1a262b6a..f720354c5069 100644
--- a/python/python-psi-impl/resources/inspectionDescriptions/metaInformation.json
+++ b/python/python-psi-impl/resources/inspectionDescriptions/metaInformation.json
@@ -233,7 +233,7 @@
"codeQualityCategory": "Reliability"
},
{
- "id": "PyUnusedLocalInspection",
+ "id": "PyUnusedLocalVariableInspection",
"codeQualityCategory": "Code Style"
},
{
diff --git a/python/python-psi-impl/resources/intellij.python.psi.impl.xml b/python/python-psi-impl/resources/intellij.python.psi.impl.xml
index 6c681b6524fb..6652fe2e9154 100644
--- a/python/python-psi-impl/resources/intellij.python.psi.impl.xml
+++ b/python/python-psi-impl/resources/intellij.python.psi.impl.xml
@@ -198,9 +198,10 @@
-
+
+
diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedFunctionInspection.kt b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedFunctionInspection.kt
index 11a7ee55784a..915f5e3f0f19 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedFunctionInspection.kt
+++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedFunctionInspection.kt
@@ -3,7 +3,7 @@ package com.jetbrains.python.inspections.unusedLocal
/**
* Reports unused local functions. Unused local variables and other local symbols are reported separately by
- * [PyUnusedLocalInspection]; both inspections share [PyUnusedLocalInspectionVisitor] for the analysis.
+ * [PyUnusedLocalVariableInspection]; both inspections share [PyUnusedLocalInspectionVisitor] for the analysis.
*/
class PyUnusedFunctionInspection : PyUnusedSymbolInspection() {
override val reportTarget: PyUnusedLocalInspectionVisitor.ReportTarget
diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedLocalInspection.java b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedLocalVariableInspection.java
similarity index 97%
rename from python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedLocalInspection.java
rename to python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedLocalVariableInspection.java
index 86e73dafd185..5104b801557c 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedLocalInspection.java
+++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedLocalVariableInspection.java
@@ -15,7 +15,7 @@ import org.jetbrains.annotations.NotNull;
import static com.intellij.codeInspection.options.OptPane.checkbox;
import static com.intellij.codeInspection.options.OptPane.pane;
-public final class PyUnusedLocalInspection extends PyInspection {
+public final class PyUnusedLocalVariableInspection extends PyInspection {
private static final Key KEY = Key.create("PyUnusedLocal.Visitor");
public boolean ignoreTupleUnpacking = true;
diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedParameterInspection.kt b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedParameterInspection.kt
index 5612d5bf63ae..01bc09d5c9b1 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedParameterInspection.kt
+++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedParameterInspection.kt
@@ -7,7 +7,7 @@ import com.jetbrains.python.PyPsiBundle
/**
* Reports unused function parameters. Unused local variables and other local symbols are reported separately by
- * [PyUnusedLocalInspection]; both inspections share [PyUnusedLocalInspectionVisitor] for the analysis.
+ * [PyUnusedLocalVariableInspection]; both inspections share [PyUnusedLocalInspectionVisitor] for the analysis.
*/
class PyUnusedParameterInspection : PyUnusedSymbolInspection() {
@JvmField
diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspection.kt b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspection.kt
index 4ae9ed2e0a43..d15b452e1c99 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspection.kt
+++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspection.kt
@@ -13,7 +13,7 @@ import com.jetbrains.python.inspections.PyInspectionVisitor
* Base class for the unused-parameter and unused-function inspections. Both report a single kind of unused symbol via the shared
* [PyUnusedLocalInspectionVisitor]; the actual control-flow analysis is shared across all unused-symbol inspections running on the
* same session (see [PyUnusedLocalInspectionVisitor.SharedAnalysis]). Unused local variables and other local symbols are reported
- * separately by [PyUnusedLocalInspection].
+ * separately by [PyUnusedLocalVariableInspection].
*/
abstract class PyUnusedSymbolInspection : PyInspection() {
private val visitorKey = Key.create("${javaClass.simpleName}.Visitor")
diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspectionMerger.kt b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspectionMerger.kt
index b891736200a6..a13538ae8ced 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspectionMerger.kt
+++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/unusedLocal/PyUnusedSymbolInspectionMerger.kt
@@ -6,13 +6,16 @@ import org.jdom.Element
/**
* Migrates user inspection-profile settings (enabled state, severity, and shared options such as `ignoreLambdaParameters`) from
- * the former combined `PyUnusedLocalInspection` to the inspection that took over part of its reporting after PY-9687 split it into
- * separate unused-local / unused-parameter / unused-function inspections. Without this, a user who had disabled or reconfigured
- * `PyUnusedLocalInspection` would silently get the new inspections back at their defaults.
+ * the former combined `PyUnusedLocalInspection` to one of the inspections it was split into by PY-9687: the unused local-variable,
+ * unused-parameter, and unused-function inspections. Without this, a user who had disabled or reconfigured `PyUnusedLocalInspection`
+ * would silently get the new inspections back at their defaults.
*
- * Suppression is intentionally NOT inherited: `# noinspection PyUnusedLocal` no longer silences parameters or functions (the split
- * is a deliberate clean break), so [getSuppressIds] returns only this inspection's own id instead of letting the base fall back to
- * the source tool name.
+ * `PyUnusedLocalInspection` is deliberately no longer a live inspection short name — it is retired into a pure migration source.
+ * If it stayed live it would consume its own serialized settings while it initialized, and because inspection initialization order
+ * is not deterministic the mergers would often run after the settings were already gone, dropping the migration.
+ *
+ * Suppression is intentionally NOT inherited across the split: each merged inspection only answers to its own suppress id, so
+ * [getSuppressIds] returns that id instead of letting the base fall back to the source tool name.
*/
abstract class PyUnusedSymbolInspectionMerger : InspectionElementsMergerBase() {
/** Suppress id of the merged (new) inspection. */
@@ -48,6 +51,11 @@ abstract class PyUnusedSymbolInspectionMerger : InspectionElementsMergerBase() {
}
}
+class PyUnusedLocalVariableInspectionMerger : PyUnusedSymbolInspectionMerger() {
+ override fun getMergedToolName(): String = "PyUnusedLocalVariableInspection"
+ override val mergedSuppressId: String get() = "PyUnusedLocal"
+}
+
class PyUnusedParameterInspectionMerger : PyUnusedSymbolInspectionMerger() {
override fun getMergedToolName(): String = "PyUnusedParameterInspection"
override val mergedSuppressId: String get() = "unused-parameter"
diff --git a/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java b/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java
index db7e0badd2c9..575587d8e2af 100644
--- a/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java
+++ b/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java
@@ -11,7 +11,7 @@ import com.jetbrains.python.inspections.PySingleQuotedDocstringInspection;
import com.jetbrains.python.inspections.PyStatementEffectInspection;
import com.jetbrains.python.inspections.PyUnboundLocalVariableInspection;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedFunctionInspection;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedParameterInspection;
import com.jetbrains.python.psi.PythonVisitorFilter;
import com.jetbrains.python.validation.PyDocStringHighlightingAnnotator;
@@ -28,7 +28,7 @@ final class ConsoleVisitorFilter implements PythonVisitorFilter {
//if we're in console
if (PydevConsoleRunnerUtil.isInPydevConsole(file)) {
//inspections
- if (visitorClass == PyUnusedLocalInspection.class || visitorClass == PyUnusedParameterInspection.class ||
+ if (visitorClass == PyUnusedLocalVariableInspection.class || visitorClass == PyUnusedParameterInspection.class ||
visitorClass == PyUnusedFunctionInspection.class || visitorClass == PyUnboundLocalVariableInspection.class ||
visitorClass == PyStatementEffectInspection.class || visitorClass == PySingleQuotedDocstringInspection.class ||
visitorClass == PyIncorrectDocstringInspection.class || visitorClass == PyMissingOrEmptyDocstringInspection.class ||
diff --git a/python/src/com/jetbrains/python/pyi/PyiVisitorFilter.java b/python/src/com/jetbrains/python/pyi/PyiVisitorFilter.java
index bb273887c378..1412e4e1b24a 100644
--- a/python/src/com/jetbrains/python/pyi/PyiVisitorFilter.java
+++ b/python/src/com/jetbrains/python/pyi/PyiVisitorFilter.java
@@ -11,7 +11,7 @@ import com.jetbrains.python.inspections.PyShadowingBuiltinsInspection;
import com.jetbrains.python.inspections.PyStatementEffectInspection;
import com.jetbrains.python.inspections.PyTypeCheckerInspection;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedFunctionInspection;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedParameterInspection;
import com.jetbrains.python.psi.PythonVisitorFilter;
import org.jetbrains.annotations.NotNull;
@@ -21,7 +21,7 @@ import java.util.Set;
public final class PyiVisitorFilter implements PythonVisitorFilter {
private static final @NotNull Set> disabledVisitors = ImmutableSet.of(
- PyUnusedLocalInspection.class,
+ PyUnusedLocalVariableInspection.class,
PyUnusedParameterInspection.class,
PyUnusedFunctionInspection.class,
PyStatementEffectInspection.class,
diff --git a/python/testData/inspections/PyUnusedLocalInspection/UnusedCoroutine/asyncio/__init__.py b/python/testData/inspections/PyUnusedLocalVariableInspection/UnusedCoroutine/asyncio/__init__.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/UnusedCoroutine/asyncio/__init__.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/UnusedCoroutine/asyncio/__init__.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/UnusedCoroutine/asyncio/tasks.py b/python/testData/inspections/PyUnusedLocalVariableInspection/UnusedCoroutine/asyncio/tasks.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/UnusedCoroutine/asyncio/tasks.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/UnusedCoroutine/asyncio/tasks.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/UnusedCoroutine/b.py b/python/testData/inspections/PyUnusedLocalVariableInspection/UnusedCoroutine/b.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/UnusedCoroutine/b.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/UnusedCoroutine/b.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/allBindingsOfSameNameInOrPatternConsideredUsed.py b/python/testData/inspections/PyUnusedLocalVariableInspection/allBindingsOfSameNameInOrPatternConsideredUsed.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/allBindingsOfSameNameInOrPatternConsideredUsed.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/allBindingsOfSameNameInOrPatternConsideredUsed.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/argsAndKwargsInDunderInit.py b/python/testData/inspections/PyUnusedLocalVariableInspection/argsAndKwargsInDunderInit.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/argsAndKwargsInDunderInit.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/argsAndKwargsInDunderInit.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/callingLocalsLeadsToUnusedParameter.py b/python/testData/inspections/PyUnusedLocalVariableInspection/callingLocalsLeadsToUnusedParameter.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/callingLocalsLeadsToUnusedParameter.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/callingLocalsLeadsToUnusedParameter.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/doctestReference.py b/python/testData/inspections/PyUnusedLocalVariableInspection/doctestReference.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/doctestReference.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/doctestReference.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/exceptionTargetStartingWithUnderscore.py b/python/testData/inspections/PyUnusedLocalVariableInspection/exceptionTargetStartingWithUnderscore.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/exceptionTargetStartingWithUnderscore.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/exceptionTargetStartingWithUnderscore.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/fStringReferences.py b/python/testData/inspections/PyUnusedLocalVariableInspection/fStringReferences.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/fStringReferences.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/fStringReferences.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/fStringReferencesInComprehensions.py b/python/testData/inspections/PyUnusedLocalVariableInspection/fStringReferencesInComprehensions.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/fStringReferencesInComprehensions.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/fStringReferencesInComprehensions.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/forwardTypeDeclaration.py b/python/testData/inspections/PyUnusedLocalVariableInspection/forwardTypeDeclaration.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/forwardTypeDeclaration.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/forwardTypeDeclaration.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/ignoringVariablesStartingWithUnderscore.py b/python/testData/inspections/PyUnusedLocalVariableInspection/ignoringVariablesStartingWithUnderscore.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/ignoringVariablesStartingWithUnderscore.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/ignoringVariablesStartingWithUnderscore.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/incompleteFunctionWithoutName.py b/python/testData/inspections/PyUnusedLocalVariableInspection/incompleteFunctionWithoutName.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/incompleteFunctionWithoutName.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/incompleteFunctionWithoutName.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/moduleGetAttr.py b/python/testData/inspections/PyUnusedLocalVariableInspection/moduleGetAttr.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/moduleGetAttr.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/moduleGetAttr.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/newStyleTypeParameterInFuncNotMarkedAsUnused.py b/python/testData/inspections/PyUnusedLocalVariableInspection/newStyleTypeParameterInFuncNotMarkedAsUnused.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/newStyleTypeParameterInFuncNotMarkedAsUnused.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/newStyleTypeParameterInFuncNotMarkedAsUnused.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/nonlocal.py b/python/testData/inspections/PyUnusedLocalVariableInspection/nonlocal.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/nonlocal.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/nonlocal.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/overloadsAndImplementationInClass.py b/python/testData/inspections/PyUnusedLocalVariableInspection/overloadsAndImplementationInClass.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/overloadsAndImplementationInClass.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/overloadsAndImplementationInClass.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/parameterInMethodWithEllipsis.py b/python/testData/inspections/PyUnusedLocalVariableInspection/parameterInMethodWithEllipsis.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/parameterInMethodWithEllipsis.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/parameterInMethodWithEllipsis.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/py2.py b/python/testData/inspections/PyUnusedLocalVariableInspection/py2.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/py2.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/py2.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/singleUnderscore.py b/python/testData/inspections/PyUnusedLocalVariableInspection/singleUnderscore.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/singleUnderscore.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/singleUnderscore.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/topLevelOverloadsAndImplementation.py b/python/testData/inspections/PyUnusedLocalVariableInspection/topLevelOverloadsAndImplementation.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/topLevelOverloadsAndImplementation.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/topLevelOverloadsAndImplementation.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/tupleUnpacking.py b/python/testData/inspections/PyUnusedLocalVariableInspection/tupleUnpacking.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/tupleUnpacking.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/tupleUnpacking.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/typeDeclarationFollowsTargetBeforeItsFirstUsage.py b/python/testData/inspections/PyUnusedLocalVariableInspection/typeDeclarationFollowsTargetBeforeItsFirstUsage.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/typeDeclarationFollowsTargetBeforeItsFirstUsage.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/typeDeclarationFollowsTargetBeforeItsFirstUsage.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/underscorePrefixed.py b/python/testData/inspections/PyUnusedLocalVariableInspection/underscorePrefixed.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/underscorePrefixed.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/underscorePrefixed.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedAssignmentExpression.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedAssignmentExpression.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedAssignmentExpression.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedAssignmentExpression.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedCapturePatterns.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedCapturePatterns.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedCapturePatterns.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedCapturePatterns.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedFunction.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedFunction.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedFunction.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedFunction.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedMultiAssignmentTarget.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedMultiAssignmentTarget.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedMultiAssignmentTarget.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedMultiAssignmentTarget.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedTypeAliasReferredToInOtherTypeAlias.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedTypeAliasReferredToInOtherTypeAlias.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedTypeAliasReferredToInOtherTypeAlias.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedTypeAliasReferredToInOtherTypeAlias.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedTypeParameterInClass.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedTypeParameterInClass.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedTypeParameterInClass.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedTypeParameterInClass.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/unusedTypeParameterInTypeAlias.py b/python/testData/inspections/PyUnusedLocalVariableInspection/unusedTypeParameterInTypeAlias.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/unusedTypeParameterInTypeAlias.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/unusedTypeParameterInTypeAlias.py
diff --git a/python/testData/inspections/PyUnusedLocalInspection/variableStartingWithUnderscore.py b/python/testData/inspections/PyUnusedLocalVariableInspection/variableStartingWithUnderscore.py
similarity index 100%
rename from python/testData/inspections/PyUnusedLocalInspection/variableStartingWithUnderscore.py
rename to python/testData/inspections/PyUnusedLocalVariableInspection/variableStartingWithUnderscore.py
diff --git a/python/testSrc/com/jetbrains/python/PySuppressInspectionsTest.java b/python/testSrc/com/jetbrains/python/PySuppressInspectionsTest.java
index f3fe5514854c..9ad45403dfaa 100644
--- a/python/testSrc/com/jetbrains/python/PySuppressInspectionsTest.java
+++ b/python/testSrc/com/jetbrains/python/PySuppressInspectionsTest.java
@@ -19,7 +19,7 @@ import com.intellij.codeInsight.intention.IntentionAction;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.inspections.PyInspection;
import com.jetbrains.python.inspections.unresolvedReference.PyUnresolvedReferencesInspection;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
import java.util.List;
@@ -37,7 +37,7 @@ public class PySuppressInspectionsTest extends PyTestCase {
}
public void testSuppressedUnusedLocal() {
- doTestHighlighting(PyUnusedLocalInspection.class);
+ doTestHighlighting(PyUnusedLocalVariableInspection.class);
}
public void testSuppressForImport() { // PY-2240
diff --git a/python/testSrc/com/jetbrains/python/inspections/PyUnusedLocalInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyUnusedLocalInspectionTest.java
index eec8e55f003c..120d82a4afda 100644
--- a/python/testSrc/com/jetbrains/python/inspections/PyUnusedLocalInspectionTest.java
+++ b/python/testSrc/com/jetbrains/python/inspections/PyUnusedLocalInspectionTest.java
@@ -19,7 +19,7 @@ import com.intellij.codeInspection.LocalInspectionTool;
import com.intellij.idea.TestFor;
import com.jetbrains.python.fixtures.PyInspectionTestCase;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedFunctionInspection;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedParameterInspection;
import com.jetbrains.python.psi.LanguageLevel;
import org.jetbrains.annotations.NotNull;
@@ -29,7 +29,7 @@ import java.util.List;
public class PyUnusedLocalInspectionTest extends PyInspectionTestCase {
public void testPy2() {
- final PyUnusedLocalInspection inspection = new PyUnusedLocalInspection();
+ final PyUnusedLocalVariableInspection inspection = new PyUnusedLocalVariableInspection();
inspection.ignoreTupleUnpacking = false;
final PyUnusedParameterInspection parameterInspection = new PyUnusedParameterInspection();
parameterInspection.ignoreLambdaParameters = false;
@@ -139,21 +139,21 @@ public class PyUnusedLocalInspectionTest extends PyInspectionTestCase {
// PY-27435
public void testVariableStartingWithUnderscore() {
- final PyUnusedLocalInspection inspection = new PyUnusedLocalInspection();
+ final PyUnusedLocalVariableInspection inspection = new PyUnusedLocalVariableInspection();
inspection.ignoreVariablesStartingWithUnderscore = false;
doTest(inspection);
}
// PY-20893
public void testExceptionTargetStartingWithUnderscore() {
- final PyUnusedLocalInspection inspection = new PyUnusedLocalInspection();
+ final PyUnusedLocalVariableInspection inspection = new PyUnusedLocalVariableInspection();
inspection.ignoreVariablesStartingWithUnderscore = true;
doTest(inspection);
}
// PY-31388
public void testIgnoringVariablesStartingWithUnderscore() {
- final PyUnusedLocalInspection inspection = new PyUnusedLocalInspection();
+ final PyUnusedLocalVariableInspection inspection = new PyUnusedLocalVariableInspection();
inspection.ignoreVariablesStartingWithUnderscore = true;
inspection.ignoreLoopIterationVariables = false;
inspection.ignoreTupleUnpacking = false;
@@ -312,7 +312,7 @@ def test():
@NotNull
@Override
protected Class extends PyInspection> getInspectionClass() {
- return PyUnusedLocalInspection.class;
+ return PyUnusedLocalVariableInspection.class;
}
// Parameter and function reporting now live in separate inspections; enable them too so the shared testData keeps matching.
@@ -322,12 +322,12 @@ def test():
return List.of(PyUnusedParameterInspection.class, PyUnusedFunctionInspection.class);
}
- private void doTest(@NotNull PyUnusedLocalInspection inspection) {
+ private void doTest(@NotNull PyUnusedLocalVariableInspection inspection) {
doTest(inspection, new PyUnusedParameterInspection());
}
- private void doTest(@NotNull PyUnusedLocalInspection inspection, @NotNull PyUnusedParameterInspection parameterInspection) {
- final String path = "inspections/PyUnusedLocalInspection/" + getTestName(true) + ".py";
+ private void doTest(@NotNull PyUnusedLocalVariableInspection inspection, @NotNull PyUnusedParameterInspection parameterInspection) {
+ final String path = "inspections/PyUnusedLocalVariableInspection/" + getTestName(true) + ".py";
myFixture.configureByFile(path);
myFixture.enableInspections(inspection, parameterInspection, new PyUnusedFunctionInspection());
myFixture.checkHighlighting(true, false, true);
diff --git a/python/testSrc/com/jetbrains/python/inspections/PyUnusedSymbolInspectionMergerTest.kt b/python/testSrc/com/jetbrains/python/inspections/PyUnusedSymbolInspectionMergerTest.kt
index 4191484fa0f3..0f773adb7b66 100644
--- a/python/testSrc/com/jetbrains/python/inspections/PyUnusedSymbolInspectionMergerTest.kt
+++ b/python/testSrc/com/jetbrains/python/inspections/PyUnusedSymbolInspectionMergerTest.kt
@@ -38,6 +38,7 @@ class PyUnusedSymbolInspectionMergerTest : PyTestCase() {
"""))
+ assertFalse(profile.getToolsOrNull("PyUnusedLocalVariableInspection", null)!!.isEnabled)
assertFalse(profile.getToolsOrNull("PyUnusedParameterInspection", null)!!.isEnabled)
assertFalse(profile.getToolsOrNull("PyUnusedFunctionInspection", null)!!.isEnabled)
}
diff --git a/python/testSrc/com/jetbrains/python/inspections/flake8/Flake8InspectionSuppressorTest.java b/python/testSrc/com/jetbrains/python/inspections/flake8/Flake8InspectionSuppressorTest.java
index d67012de2b1c..4843615f6200 100644
--- a/python/testSrc/com/jetbrains/python/inspections/flake8/Flake8InspectionSuppressorTest.java
+++ b/python/testSrc/com/jetbrains/python/inspections/flake8/Flake8InspectionSuppressorTest.java
@@ -8,7 +8,7 @@ import com.jetbrains.python.PythonFileType;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.inspections.PyComparisonWithNoneInspection;
import com.jetbrains.python.inspections.unresolvedReference.PyUnresolvedReferencesInspection;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
import org.jetbrains.annotations.NotNull;
public class Flake8InspectionSuppressorTest extends PyTestCase {
@@ -16,25 +16,25 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
public void testInlineComment() {
doTestByText("def foo():\n" +
" x = 1 # noqa",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testCaseInsensitiveness() {
doTestByText("def foo():\n" +
" x = 1 # NOQA",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testInlineCommentWithSuffix() {
doTestByText("def foo():\n" +
" x = 1 # noqa123 ",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testInlineCommentFollowedByPlainText() {
doTestByText("def foo():\n" +
" x = 1 # noqa # General purpose comment",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testSuppressingNonPythonSpecificInspections() {
@@ -47,13 +47,13 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
# flake8: noqa
def foo():
x = 1""",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testIncompleteInlineComment() {
doTestByText("def foo():\n" +
" x = 1 # noq",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testUnrelatedCommentContainingNoqa() {
@@ -63,7 +63,7 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
def foo():
x = 1
""",
- PyUnusedLocalInspection.class);
+ PyUnusedLocalVariableInspection.class);
}
public void testSingleErrorCode() {
@@ -71,7 +71,7 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
def func():
x = unresolved # noqa: F821
""",
- PyUnusedLocalInspection.class, PyUnresolvedReferencesInspection.class);
+ PyUnusedLocalVariableInspection.class, PyUnresolvedReferencesInspection.class);
}
public void testMultipleErrorCodes() {
@@ -79,7 +79,7 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
def func():
x = unresolved # noqa: F821, F841
""",
- PyUnusedLocalInspection.class, PyUnresolvedReferencesInspection.class);
+ PyUnusedLocalVariableInspection.class, PyUnresolvedReferencesInspection.class);
}
public void testCommonErrorCodePrefix() {
@@ -87,7 +87,7 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
def func():
x = unresolved # noqa: F8
""",
- PyUnusedLocalInspection.class, PyUnresolvedReferencesInspection.class);
+ PyUnusedLocalVariableInspection.class, PyUnresolvedReferencesInspection.class);
}
public void testUnrelatedErrorCode() {
@@ -95,12 +95,12 @@ public class Flake8InspectionSuppressorTest extends PyTestCase {
def func():
x = unresolved # noqa: F631
""",
- PyUnusedLocalInspection.class, PyUnresolvedReferencesInspection.class);
+ PyUnusedLocalVariableInspection.class, PyUnresolvedReferencesInspection.class);
}
public void testUnusedImport() {
myFixture.enableInspections(PyUnresolvedReferencesInspection.class);
- doTestByText("import sys # noqa", PyUnusedLocalInspection.class);
+ doTestByText("import sys # noqa", PyUnusedLocalVariableInspection.class);
}
// PY-16067
diff --git a/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveStatementQuickFixTest.java b/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveStatementQuickFixTest.java
index 7f2e8084a83a..2bffaf5fdc69 100644
--- a/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveStatementQuickFixTest.java
+++ b/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveStatementQuickFixTest.java
@@ -22,7 +22,7 @@ import com.jetbrains.python.allure.Layers;
import com.jetbrains.python.allure.Subsystems;
import com.jetbrains.python.inspections.PyReturnFromInitInspection;
import com.jetbrains.python.inspections.unusedLocal.PyUnusedFunctionInspection;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
@TestDataPath("$CONTENT_ROOT/../testData//quickFixes/PyRemoveStatementQuickFixTest/")
@Subsystems.QuickFixes
@@ -42,7 +42,7 @@ public class PyRemoveStatementQuickFixTest extends PyQuickFixTestCase {
}
public void testVariable() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.statement"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.statement"));
}
}
diff --git a/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveUnusedLocalQuickFixTest.java b/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveUnusedLocalQuickFixTest.java
index fad222b48edd..2f004323b87c 100644
--- a/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveUnusedLocalQuickFixTest.java
+++ b/python/testSrc/com/jetbrains/python/quickFixes/PyRemoveUnusedLocalQuickFixTest.java
@@ -21,7 +21,7 @@ import com.jetbrains.python.PyPsiBundle;
import com.jetbrains.python.PyQuickFixTestCase;
import com.jetbrains.python.allure.Layers;
import com.jetbrains.python.allure.Subsystems;
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection;
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection;
import com.jetbrains.python.psi.LanguageLevel;
import org.jetbrains.annotations.NotNull;
@@ -31,48 +31,48 @@ import org.jetbrains.annotations.NotNull;
public class PyRemoveUnusedLocalQuickFixTest extends PyQuickFixTestCase {
// PY-20893
public void testExcept() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.exception.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.exception.target"));
}
// PY-20893
public void testExcept2() {
runWithLanguageLevel(LanguageLevel.PYTHON27,
- () -> doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.exception.target")));
+ () -> doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.exception.target")));
}
// PY-26418
public void testWithOneTarget() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.with.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.with.target"));
}
// PY-26418
public void testWithTwoTargets() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("INSP.unused.locals.replace.with.wildcard"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("INSP.unused.locals.replace.with.wildcard"));
}
// PY-26418
public void testTwoWithItemsFirstUnused() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.with.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.with.target"));
}
// PY-26418
public void testTwoWithItemsSecondUnused() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.with.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.with.target"));
}
// PY-17901
public void testRemoveAssignmentStatementTarget() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.assignment.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.assignment.target"));
}
// PY-28782
public void testRemoveChainedAssignmentStatementFirstTarget() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.assignment.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.assignment.target"));
}
// PY-28782
public void testRemoveChainedAssignmentStatementSecondTarget() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.assignment.target"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.assignment.target"));
}
// PY-28782
@@ -87,7 +87,7 @@ public class PyRemoveUnusedLocalQuickFixTest extends PyQuickFixTestCase {
private void doTestNotIgnoreTupleUnpacking(@NotNull String hint) {
final String testFileName = getTestName(true);
- final PyUnusedLocalInspection inspection = new PyUnusedLocalInspection();
+ final PyUnusedLocalVariableInspection inspection = new PyUnusedLocalVariableInspection();
inspection.ignoreTupleUnpacking = false;
myFixture.configureByFile(testFileName + ".py");
myFixture.enableInspections(inspection);
@@ -100,23 +100,23 @@ public class PyRemoveUnusedLocalQuickFixTest extends PyQuickFixTestCase {
// PY-32037
public void testGeneratorIterator() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("INSP.unused.locals.replace.with.wildcard"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("INSP.unused.locals.replace.with.wildcard"));
}
// PY-32037
public void testComprehensionIterator() {
- doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("INSP.unused.locals.replace.with.wildcard"));
+ doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("INSP.unused.locals.replace.with.wildcard"));
}
// PY-85080
public void testRemoveUnusedTypeParameterInFunction() {
runWithLanguageLevel(LanguageLevel.PYTHON312,
- () -> doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.type.parameter")));
+ () -> doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.type.parameter")));
}
// PY-85080
public void testRemoveUnusedTypeParameterInTypeAlias() {
runWithLanguageLevel(LanguageLevel.PYTHON312,
- () -> doQuickFixTest(PyUnusedLocalInspection.class, PyPsiBundle.message("QFIX.NAME.remove.type.parameter")));
+ () -> doQuickFixTest(PyUnusedLocalVariableInspection.class, PyPsiBundle.message("QFIX.NAME.remove.type.parameter")));
}
}
diff --git a/python/testSrc/com/jetbrains/python/testing/PyTestFixtureAndParametrizedTest.kt b/python/testSrc/com/jetbrains/python/testing/PyTestFixtureAndParametrizedTest.kt
index b2ba1a0481ba..00fe7d498b8e 100644
--- a/python/testSrc/com/jetbrains/python/testing/PyTestFixtureAndParametrizedTest.kt
+++ b/python/testSrc/com/jetbrains/python/testing/PyTestFixtureAndParametrizedTest.kt
@@ -4,7 +4,7 @@ package com.jetbrains.python.testing
import com.intellij.idea.TestFor
import com.intellij.testFramework.fixtures.CodeInsightTestFixture
import com.jetbrains.python.fixtures.PyTestCase
-import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalInspection
+import com.jetbrains.python.inspections.unusedLocal.PyUnusedLocalVariableInspection
import com.jetbrains.python.inspections.unusedLocal.PyUnusedParameterInspection
import com.jetbrains.python.testing.pyTestParametrized.PyTestParametrizedInspection
@@ -16,7 +16,7 @@ class PyTestFixtureAndParametrizedTest : PyTestCase() {
const val testSubfolder = "/testCompletion"
fun testInspectionStatic(fixture: CodeInsightTestFixture) {
fixture.configureByFile("test_for_inspection_test.py")
- fixture.enableInspections(PyUnusedLocalInspection::class.java, PyUnusedParameterInspection::class.java,
+ fixture.enableInspections(PyUnusedLocalVariableInspection::class.java, PyUnusedParameterInspection::class.java,
PyTestParametrizedInspection::class.java)
fixture.checkHighlighting(true, false, true)
}