From eb631487983f63f7b00afe13789cb3f39d53168d Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Fri, 14 Jun 2024 18:26:10 +0500 Subject: [PATCH] PY-73246 Don't insert square brackets after classes not having free type parameters Even if they transitively extend typing.Generic, such as the builtin str. GitOrigin-RevId: 9389ef5846e21ba5e0fed8b835beb2d458e42f13 --- .../completion/PyParameterizedTypeInsertHandler.java | 6 +++--- .../a.after.py | 8 ++++++++ .../a.py | 8 ++++++++ .../testSrc/com/jetbrains/python/Py3CompletionTest.java | 5 +++++ 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 python/testData/completion/squareBracketsNotInsertedAfterAlreadyParameterizedGenericInsideTypeHints/a.after.py create mode 100644 python/testData/completion/squareBracketsNotInsertedAfterAlreadyParameterizedGenericInsideTypeHints/a.py diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyParameterizedTypeInsertHandler.java b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyParameterizedTypeInsertHandler.java index c060d44522d4..7dfca51696b1 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyParameterizedTypeInsertHandler.java +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyParameterizedTypeInsertHandler.java @@ -19,7 +19,7 @@ public class PyParameterizedTypeInsertHandler extends ParenthesesInsertHandler \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/Py3CompletionTest.java b/python/testSrc/com/jetbrains/python/Py3CompletionTest.java index c0483c0f4373..4e7c9cc1d4ec 100644 --- a/python/testSrc/com/jetbrains/python/Py3CompletionTest.java +++ b/python/testSrc/com/jetbrains/python/Py3CompletionTest.java @@ -743,6 +743,11 @@ public class Py3CompletionTest extends PyTestCase { doMultiFileTest(); } + // PY-73246 + public void testSquareBracketsNotInsertedAfterAlreadyParameterizedGenericInsideTypeHints() { + doMultiFileTest(); + } + private void doTestVariants(String @NotNull ... expected) { final String testName = getTestName(true); myFixture.configureByFile(testName + ".py");