PY-83118 Forward Reference Causes Import to Be Incorrectly Removed in PyCharm 2025.2

(cherry picked from commit fcf27e5c97e12498bc1c630f43e0a0876faba408)

IJ-CR-172300

GitOrigin-RevId: cd4e80d21dfaf85312c2ac9b1944f04307bb40d4
This commit is contained in:
Andrey Vokin
2025-08-13 12:51:21 +02:00
committed by intellij-monorepo-bot
parent 8730c8c8d6
commit 3549a74efc
4 changed files with 17 additions and 0 deletions

View File

@@ -91,6 +91,9 @@ class PyUnusedImportsInspection : PyInspection() {
override fun visitPyElement(node: PyElement) {
super.visitPyElement(node)
if (node is PsiLanguageInjectionHost) {
processInjection(node)
}
if (node is PyReferenceOwner) {
val resolveContext = PyResolveContext.defaultContext(myTypeEvalContext)
processReference(node, node.getReference(resolveContext))

View File

@@ -0,0 +1,7 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mymodule import SomeClass
def func(x: "SomeClass") -> None:
...

View File

@@ -0,0 +1,2 @@
class SomeClass:
pass

View File

@@ -83,6 +83,11 @@ public class PyUnusedImportTest extends PyTestCase {
doTest();
}
// PY-83075
public void testInjectedImportUsage() {
doTest("injectedImportUsage.py");
}
// PY-22620
public void testTupleTypeCommentsUseImportsFromTyping() {
doTest();