private static List<TextRange> getTextRangeForMethod(final ExceptionLineParser worker,
                                                       LineResult previousLineResult) {
    String method = worker.getMethod().replaceFirst("\\$lambda\\$\\d+$", "")
      .replaceFirst("^lambda\\$(.+)\\$\\d+$", "$1");
    UClass psiClass = worker.getUClass();
    if (psiClass == null) return null;
    List<UMethod> methods;
    if (method.contains("<init>")) {
      // constructor
      methods = ContainerUtil.filter(psiClass.getMethods(), m -> m.isConstructor());
    }
    else if (method.contains("$")) {
      // access$100
      return null;
    }
    else {
      methods = ContainerUtil.filter(psiClass.getMethods(), m -> method.equals(m.getName()));
    }
    if (!methods.isEmpty()) {
      if (methods.size() == 1) {
        PsiElement psi = methods.get(0).getSourcePsi();
        if (psi == null) return null;
        final TextRange range = psi.getTextRange();
        return Collections.singletonList(range);
      }
      else {
        List<UMethod> selectedMethods = selectMethod(methods, previousLineResult);
        final List<UMethod> toIterate = selectedMethods == null ? methods : selectedMethods;
        final List<TextRange> result = new ArrayList<>();
        for (UMethod psiMethod : toIterate) {
          PsiElement psi = psiMethod.getSourcePsi();
          if (psi != null) {
            result.add(psi.getTextRange());
          }
        }
        return result;
      }
    }
    return null;
  }
private static List<TextRange> getTextRangeForMethod(final ExceptionLineParser worker,
                                                       LineResult previousLineResult)