@Contract("null,_,_ -> false")
  public static boolean isUnconditionalForType(@Nullable PsiCaseLabelElement pattern, @NotNull PsiType type, boolean forDominationOfDeconstructionPatternType) {
    PsiPrimaryPattern unconditionalPattern = findUnconditionalPattern(pattern);
    if (unconditionalPattern == null) return false;
    PsiType patternType = getPatternType(unconditionalPattern);
    if (unconditionalPattern instanceof PsiDeconstructionPattern) {
      return forDominationOfDeconstructionPatternType && dominates(patternType, type);
    }
    else if ((unconditionalPattern instanceof PsiTypeTestPattern ||
              unconditionalPattern instanceof PsiUnnamedPattern)) {
      return isUnconditionallyExactForType(pattern, type, patternType);
    }
    return false;
  }
@Contract("null,_,_ -> false")
  public static boolean isUnconditionalForType(@Nullable PsiCaseLabelElement pattern, @NotNull PsiType type, boolean forDominationOfDeconstructionPatternType)