void (@NotNull DebuggerSession session, boolean compileBeforeHotswap, @Nullable HotSwapStatusListener callback) { dontAskHotswapAfterThisCompilation(); if (compileBeforeHotswap) { Project project = session.getProject(); ProjectTaskManagerImpl.putBuildOriginator(project, this.getClass()); ProjectTaskManager projectTaskManager = ProjectTaskManager.getInstance(project); if (callback == null) { projectTaskManager.buildAllModules(); } else { ProjectTask buildProjectTask = projectTaskManager.createAllModulesBuildTask(true, project); ProjectTaskContext context = new ProjectTaskContext(callback).withUserData(HOT_SWAP_CALLBACK_KEY, callback); projectTaskManager.run(context, buildProjectTask); } } else { if (session.isAttached()) { hotSwapSessions(Collections.singletonList(session), null, null, callback); } else if (callback != null) { callback.onFailure(List.of(session)); } } }