@Nullable
  public static CauseItem findProblemCause(boolean ignoreAssertions,
                                           PsiExpression expression,
                                           DfaProblemType type) {
    PsiElement body = DfaUtil.getDataflowContext(expression);
    if (body == null) return null;
    TrackingRunner runner = new TrackingRunner(body, expression, ignoreAssertions);
    if (!runner.analyze(expression, body)) return null;
    return runner.findProblemCause(expression, type);
  }
@Nullable
  public static CauseItem findProblemCause(boolean ignoreAssertions,
                                           PsiExpression expression,
                                           DfaProblemType type)