private static @NotNull List<ExpectedTypeInfo> findExpectedTypesForPatterns(@NotNull List<PsiType> expectedTypes,
                                                                                @NotNull PsiSwitchBlock statement) {
      PsiManager manager = statement.getManager();
      if(manager == null) return Collections.emptyList();
      PsiType lub = getLeastUpperBound(expectedTypes, manager);
      if (lub == null) return Collections.emptyList();
      return Collections.singletonList(createInfo(lub, ExpectedTypeInfo.TYPE_OR_SUPERTYPE, lub, TailTypes.noneType()));
    }
private static @NotNull List<ExpectedTypeInfo> findExpectedTypesForPatterns(@NotNull List<PsiType> expectedTypes,
                                                                                @NotNull PsiSwitchBlock statement)