private static boolean addNewClasses(@NotNull PsiElement context,
                                       @NotNull PsiType selectorType,
                                       @NotNull Set<PsiClass> visitedCovered,
                                       @NotNull Set<PsiType> existedTypes,
                                       @NotNull Collection<PatternTypeTestDescription> toAdd) {
    boolean changed = false;
    for (PsiClass covered : visitedCovered) {
      PsiClassType classType = TypeUtils.getType(covered);
      if (!existedTypes.contains(classType)) {
        if (PatternsInSwitchBlockHighlightingModel.cover(context, selectorType, classType)) {
          toAdd.add(new PatternTypeTestDescription(classType));
          changed = true;
        }
        //find something upper. let's change to selectorType
        if (PatternsInSwitchBlockHighlightingModel.cover(context, classType, selectorType)) {
          toAdd.add(new PatternTypeTestDescription(selectorType));
          changed = true;
          break;
        }
      }
    }
    return changed;
  }
private static boolean addNewClasses(@NotNull PsiElement context,
                                       @NotNull PsiType selectorType,
                                       @NotNull Set<PsiClass> visitedCovered,
                                       @NotNull Set<PsiType> existedTypes,
                                       @NotNull Collection<PatternTypeTestDescription> toAdd)