PY-80169 Conformance test failure: exceptions_context_managers.py

(cherry picked from commit 9d0714edc4507cb90feb56f2ec72466b1b454c79)

GitOrigin-RevId: af485a6386b0c11fe348cbdfaa8b3767bf112cf5
This commit is contained in:
Petr
2025-04-03 14:04:11 +02:00
committed by intellij-monorepo-bot
parent 8b35c2619c
commit b1b6fe88d3
3 changed files with 38 additions and 2 deletions

View File

@@ -6,7 +6,9 @@ import com.intellij.psi.util.PsiTreeUtil
import com.jetbrains.python.psi.PyWithItem
import com.jetbrains.python.psi.PyWithStatement
import com.jetbrains.python.psi.impl.PyBuiltinCache
import com.jetbrains.python.psi.impl.PyEvaluator
import com.jetbrains.python.psi.types.PyCollectionType
import com.jetbrains.python.psi.types.PyLiteralType
import com.jetbrains.python.psi.types.PyTypeUtil
import com.jetbrains.python.psi.types.TypeEvalContext
@@ -24,6 +26,7 @@ class PyWithContextExitInstruction(builder: ControlFlowBuilder, withItem: PyWith
return context.getType(element.expression)
.let { PyTypeUtil.convertToType(it, abstractType, element, context) }
.let { (it as? PyCollectionType)?.elementTypes?.getOrNull(1) }
.let { it == PyBuiltinCache.getInstance(element).boolType }
.let { it == PyBuiltinCache.getInstance(element).boolType ||
it is PyLiteralType && PyEvaluator.getBooleanLiteralValue(it.expression) == true }
}
}