RunnerResult (@NotNull PsiElement block, @NotNull Collection<? extends DfaMemoryState> states, @NotNull DfaListener listener) { RunnerResult result = analyzeMethod(block, listener, states); if (result != RunnerResult.OK) return result; Ref<RunnerResult> ref = Ref.create(RunnerResult.OK); forNestedClosures((closure, nestedStates) -> { RunnerResult res = analyzeBlockRecursively(closure, nestedStates, listener); if (res != RunnerResult.OK) { ref.set(res); } }); return ref.get(); }