void assertNoDoneMarkerAround(@NotNull PsiBuilderImpl.StartMarker pivot) {
    int pivotIndex = indexOf(pivot);
    for (int i = pivotIndex + 1; i < size(); i++) {
      PsiBuilderImpl.StartMarker m = getDoneMarkerAt(i);
      if (m != null && m.myLexemeIndex <= pivot.myLexemeIndex && indexOf(m) < pivotIndex) {
        throw new AssertionError("There's a marker of type '" + m.getTokenType() + "' that starts before and finishes after the current marker. See cause for its allocation trace.", myOptionalData.getAllocationTrace(m));
      }
    }
  }
void assertNoDoneMarkerAround(@NotNull PsiBuilderImpl.StartMarker pivot)