Promise<List<JvmSmartStepIntoVariant>> (@NotNull XSourcePosition xPosition, boolean smart) { SourcePosition position = DebuggerUtilsEx.toSourcePosition(xPosition, mySession.getProject()); JvmSmartStepIntoHandler handler = JvmSmartStepIntoHandler.EP_NAME.findFirstSafe(h -> h.isAvailable(position)); if (handler != null) { Promise<List<SmartStepTarget>> targets = smart ? handler.findSmartStepTargetsAsync(position, mySession) : handler.findStepIntoTargets(position, mySession); return targets.then(results -> ContainerUtil.map(results, target -> new JvmSmartStepIntoVariant(target, handler))); } return Promises.rejectedPromise(); }