TreeElement (@NotNull TreeElement currentLeafOrLazyParseable, int currentLeafOffset, @NotNull TextRange rangeToProcess, @NotNull CharTable charTable) { TextRange intersection = rangeToProcess.intersection(TextRange.from(currentLeafOffset, currentLeafOrLazyParseable.getTextLength())); assert intersection != null; TextRange rangeWithinLeaf = intersection.shiftLeft(currentLeafOffset); currentLeafOrLazyParseable = removeRange(currentLeafOrLazyParseable, rangeWithinLeaf, charTable); addRangeToLazyParseableCollector(currentLeafOrLazyParseable, rangeWithinLeaf); return currentLeafOrLazyParseable; }