[python] fix StackOverflowError while calculating a generic definition type in PyTypingTypeProvider.java

GitOrigin-RevId: 0ff3415886906cb29eb6bd3caa1fa140c0693ba7
This commit is contained in:
Daniil Kalinin
2024-09-18 11:00:09 +02:00
committed by intellij-monorepo-bot
parent f36489f4d2
commit bc9902ad42

View File

@@ -1884,7 +1884,8 @@ public final class PyTypingTypeProvider extends PyTypeProviderWithCustomContext<
@NotNull Context context) {
PyClass pyClass = classType.getPyClass();
if (isGeneric(pyClass, context.getTypeContext())) {
PyCollectionType genericDefinitionType = PyTypeChecker.findGenericDefinitionType(pyClass, context.getTypeContext());
PyCollectionType genericDefinitionType =
doPreventingRecursion(pyClass, false, () -> PyTypeChecker.findGenericDefinitionType(pyClass, context.getTypeContext()));
if (genericDefinitionType != null && ContainerUtil.exists(genericDefinitionType.getElementTypes(),
t -> t instanceof PyTypeParameterType typeParameterType &&
typeParameterType.getDefaultType() != null)) {