diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java index d8a5474ca802..f18f32311c48 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java @@ -386,14 +386,21 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF @Override public String getText() { + final ASTNode tree = derefTreeElement(); if (!isValid()) { // even invalid PSI can calculate its text by concatenating its children - final ASTNode tree = derefTreeElement(); if (tree != null) return tree.getText(); throw new PsiInvalidElementAccessException(this); } - return getViewProvider().getContents().toString(); + String string = getViewProvider().getContents().toString(); + if (tree != null && string.length() != tree.getTextLength()) { + throw new AssertionError("File text mismatch: tree.length=" + tree.getTextLength() + + "; psi.length=" + string.length() + + "; this=" + this + + "; vp=" + getViewProvider()); + } + return string; } @Override