boolean (HighlightVisitor @NotNull [] visitors, @NotNull HighlightInfoHolder holder, int i, @NotNull Runnable action) { boolean[] success = {true}; if (i == visitors.length) { action.run(); } else { if (!visitors[i].analyze(getFile(), myUpdateAll, holder, () -> success[0] = analyzeByVisitors(visitors, holder, i + 1, action))) { success[0] = false; } } return success[0]; }