private void add(Tree node, Trees trees) { CompilationUnitTree unit = getCurrentPath().getCompilationUnit(); SourcePositions positions = trees.getSourcePositions(); LineMap lineMap = unit.getLineMap(); if (lineMap == null) { return; } long startPos = positions.getStartPosition(unit, node); long endPos = positions.getEndPosition(unit, node); if (startPos == NOPOS || endPos == NOPOS) { return; } long endLineNum = lineMap.getLineNumber(endPos); long startLineNum = lineMap.getLineNumber(startPos); long startLineStartPos = lineMap.getStartPosition(startLineNum); regions.computeIfAbsent(unit, __ -> new HashSet<>()) .add(IndexRegion.create(startLineNum, endLineNum, startLineStartPos)); }