@Contract("_, null, _ -> null; _, !null, null -> null")
  private static @Nullable IfConditionalModel extractFromReturn(PsiExpression condition,
                                                                PsiReturnStatement thenBranch,
                                                                PsiReturnStatement elseBranch) {
    if (thenBranch == null || elseBranch == null) return null;
    final PsiExpression thenReturn = thenBranch.getReturnValue();
    if (thenReturn == null) return null;
    final PsiExpression elseReturn = elseBranch.getReturnValue();
    if (elseReturn == null) return null;
    PsiType type = getEnclosingReturnType(condition);
    if (type == null) return null;
    return new IfConditionalModel(condition, thenReturn, elseReturn, thenBranch, elseBranch, type);
  }
@Contract("_, null, _ -> null; _, !null, null -> null")
  private static @Nullable IfConditionalModel extractFromReturn(PsiExpression condition,
                                                                PsiReturnStatement thenBranch,
                                                                PsiReturnStatement elseBranch)