private @Nullable <P extends PsiElement, S extends StubElement<P>> S findChildStubByType(IStubElementType<S, P> elementType,
                                                                                           IntUnaryOperator idList,
                                                                                           int start, int end) {
    for (int i = start; i < end; ++i) {
      int id = idList.applyAsInt(i);
      if (elementType.getIndex() == getStubTypeIndex(id)) {
        //noinspection unchecked
        return (S)get(id);
      }
    }
    return null;
  }
private @Nullable <P extends PsiElement, S extends StubElement<P>> S findChildStubByType(IStubElementType<S, P> elementType,
                                                                                           IntUnaryOperator idList,
                                                                                           int start, int end)