PY-76642 Add correct imports when generating type hints containing TypedDict

(cherry picked from commit 5c7761bea54741d68a7137788a46785db61f4247)

IJ-CR-149697

GitOrigin-RevId: 9eafefe6cef2bd599e6b84cf7d199f72c675b14f
This commit is contained in:
Mikhail Golubev
2024-10-16 11:56:28 +03:00
committed by intellij-monorepo-bot
parent 1d8c4eebd6
commit 2864833fca
9 changed files with 50 additions and 2 deletions

View File

@@ -335,8 +335,17 @@ public final class PyTypeHintGenerationUtil {
else if (type instanceof PyTupleType && useGenericAliasFromTyping) {
typingTypes.add("Tuple");
}
else if (type instanceof PyTypedDictType) {
typingTypes.add("Dict");
else if (type instanceof PyTypedDictType typedDictType) {
if (typedDictType.isInferred()) {
if (useGenericAliasFromTyping) {
typingTypes.add("Dict");
}
}
else {
symbols.add((PsiNamedElement)typedDictType.getDeclarationElement());
// Don't go through its type arguments
return;
}
}
for (PyType pyType : ((PyCollectionType)type).getElementTypes()) {
collectImportTargetsFromType(pyType, context, symbols, typingTypes);