@NotNull
  @Override
  public List<PsiType> getControlFlowExpressionTypeConjuncts(@NotNull PsiExpression expr, boolean honorAssignments) {
    if (expr.getType() instanceof PsiPrimitiveType) {
      return Collections.emptyList();
    }
    PsiExpression place = PsiUtil.skipParenthesizedExprDown(expr);
    if (place == null) return Collections.emptyList();

    DumbService dumbService = DumbService.getInstance(myProject);
    PsiType type = dumbService.computeWithAlternativeResolveEnabled(() -> {
      if (!ControlFlowAnalyzer.inlinerMayInferPreciseType(place)) {
        GuessTypeVisitor visitor = tryGuessingTypeWithoutDfa(place, honorAssignments);
        if (!visitor.isDfaNeeded()) return visitor.mySpecificType;
      }
      return getTypeFromDataflow(expr, honorAssignments);
    });
    return dumbService.computeWithAlternativeResolveEnabled(() -> postFilter(expr, type));
  }
@NotNull
  @Override
  public List<PsiType> getControlFlowExpressionTypeConjuncts(@NotNull PsiExpression expr, boolean honorAssignments)