private static @NotNull <Member extends PsiMember, P extends Processor<Member>> PsiElementProcessorAdapter<Member> createMembersProcessor(@NotNull List<P> processors,
                                                                                                                                            @NotNull AnalysisScope scope) {
    return new PsiElementProcessorAdapter<>(member -> {
      if (scope.contains(member)) return true;
      List<P> processorsArrayed = new ArrayList<>(processors);
      for (P processor : processorsArrayed) {
        if (!processor.process(member)) {
          processors.remove(processor);
        }
      }
      return !processors.isEmpty();
    });
  }
private static @NotNull <Member extends PsiMember, P extends Processor<Member>> PsiElementProcessorAdapter<Member> createMembersProcessor(@NotNull List<P> processors,
                                                                                                                                            @NotNull AnalysisScope scope)