boolean (@NotNull Data.Block block) { if (myCache == null || myCache.ranges.length != myCount) return myDefault; if (myDefault != myCache.expandByDefault) return myDefault; Boolean state = null; for (int index = 0; index < myCount; index++) { LineRange range = block.ranges[index]; if (range == null) continue; Boolean sideState = getCachedExpanded(range.start, range.end, index); if (sideState == null) continue; if (state == null) { state = sideState; continue; } if (state != sideState) return myDefault; } return state == null ? myDefault : state; }