void (@NotNull List<? extends PsiElement> srcSpine, List<? extends StubElement<?>> stubList, List<? extends CompositeElement> nodeList, boolean takePsiFromStubs) { for (int i = firstNonFilePsiIndex; i < stubList.size(); i++) { StubElement<?> stub = stubList.get(i); CompositeElement node = nodeList.get(i); assert stub.getStubType() == node.getElementType() : "Stub type mismatch: " + stub.getStubType() + "!=" + node.getElementType() + " in #" + node.getElementType().getLanguage(); PsiElement psi = Objects.requireNonNull(srcSpine.get(i)); if (takePsiFromStubs) { node.setPsi(psi); } else { //noinspection unchecked ((StubBase)stub).setPsi(psi); } } }