void (final @NotNull PyWithStatement node) { super.visitPyWithStatement(node); final boolean suppressor = StreamEx .of(node.getWithItems()) .map(PyWithItem::getExpression) .select(PyCallExpression.class) .map(PyCallExpression::getCallee) .select(PyReferenceExpression.class) .anyMatch(it -> EXCEPTION_SUPPRESSORS.contains(it.getReferencedName())); myBuilder.processPending((pendingScope, instruction) -> { final PsiElement element = instruction.getElement(); if (element != null && PsiTreeUtil.isAncestor(node, element, true) && (suppressor && canRaiseExceptions(instruction) || PsiTreeUtil.getParentOfType(element, PyRaiseStatement.class) != null)) { myBuilder.addPendingEdge(node, instruction); } myBuilder.addPendingEdge(pendingScope, instruction); }); }