public static boolean processExecutors(
    @NotNull PsiClassType psiType,
    @NotNull PsiElement place,
    @NotNull PairProcessor<? super CustomMembersHolder, ? super GroovyClassDescriptor> processor
  ) {
    if (insideAnnotation(place)) {
      // Basic filter, all DSL contexts are applicable for reference expressions only
      return true;
    }

    final PsiFile placeFile = place.getContainingFile().getOriginalFile();
    final PsiClass psiClass = psiType.resolve();
    if (psiClass == null) {
      return true;
    }

    for (GroovyDslScript script : getDslScripts(placeFile.getProject())) {
      GroovyClassDescriptor descriptor = new GroovyClassDescriptor(psiType, psiClass, place, placeFile);
      CustomMembersHolder holder = script.processExecutor(descriptor);
      VirtualFile origin = script.getFile();
      if (origin != null) {
        holder = new OriginAwareMembersHolder(origin, holder);
      }
      if (!processor.process(holder, descriptor)) {
        return false;
      }
    }
    return true;
  }
public static boolean processExecutors(
    @NotNull PsiClassType psiType,
    @NotNull PsiElement place,
    @NotNull PairProcessor<? super CustomMembersHolder, ? super GroovyClassDescriptor> processor
  )