void (@NotNull ProjectTaskManager.Result result) { if (myProject.isDisposed()) return; if (!hasCompilationResults(result)) return; ProjectTaskContext context = result.getContext(); if (result.hasErrors() || result.isAborted()) return; if (SKIP_HOT_SWAP_KEY.getRequired(context)) return; HotSwapUIImpl instance = (HotSwapUIImpl)getInstance(myProject); for (HotSwapVetoableListener listener : instance.myListeners) { if (!listener.shouldHotSwap(context)) return; } List<DebuggerSession> sessions = getHotSwappableDebugSessions(myProject); if (sessions.isEmpty()) return; Map<String, Collection<String>> generatedPaths = collectGeneratedPaths(context); HotSwapStatusListener callback = context.getUserData(HOT_SWAP_CALLBACK_KEY); NotNullLazyValue<List<String>> outputRoots = context.getDirtyOutputPaths() .map(stream -> NotNullLazyValue.createValue(() -> stream.collect(Collectors.toList()))) .orElse(null); instance.hotSwapSessions(sessions, generatedPaths, outputRoots, callback); }