ASTNode (@NotNull PsiFileImpl file, @NotNull FileElement treeElement) { @NonNls String message = "file=" + file + "; tree=" + treeElement; PsiElement each = this; while (each != null) { message += "\n each of class " + each.getClass() + "; valid=" + each.isValid(); if (each instanceof StubBasedPsiElementBase) { message += "; ref=" + ((StubBasedPsiElementBase<?>)each).mySubstrateRef; each = ((StubBasedPsiElementBase<?>)each).getParentByStub(); } else { if (each instanceof PsiFile) { message += "; same file=" + (each == file) + "; current tree= " + file.getTreeElement() + "; stubTree=" + file.getStubTree() + "; physical=" + file.isPhysical(); } break; } } StubElement<?> eachStub = getStub(); while (eachStub != null) { message += "\n each stub " + (eachStub instanceof PsiFileStubImpl ? ((PsiFileStubImpl<?>)eachStub).getDiagnostics() : eachStub); eachStub = eachStub.getParentStub(); } if (ourTraceStubAstBinding) { message += dumpCreationTraces(treeElement); } throw new AssertionError(message); }