private @Nullable AnalysisStartingPoint fromClassCastException(@NotNull PsiElement anchor, @Nullable String actualClass) {
    if (!(anchor instanceof PsiTypeElement)) return null;
    PsiTypeCastExpression castExpression = tryCast(anchor.getParent(), PsiTypeCastExpression.class);
    if (castExpression == null) return null;
    PsiExpression ref = AnalysisStartingPoint.extractAnchor(castExpression.getOperand());
    if (ref == null) return null;
    if (actualClass != null) {
      PsiType psiType = getPsiType(actualClass);
      if (psiType != null) {
        return new AnalysisStartingPoint(TypeConstraints.exact(psiType).asDfType().meet(DfTypes.NOT_NULL_OBJECT), ref);
      }
    }
    PsiType castType = castExpression.getType();
    if (castType != null) {
      return AnalysisStartingPoint.tryNegate(new AnalysisStartingPoint(DfTypes.typedObject(castType, Nullability.NULLABLE), ref));
    }
    return null;
  }
private @Nullable AnalysisStartingPoint fromClassCastException(@NotNull PsiElement anchor, @Nullable String actualClass)