Set<TextWithImports> (Pair<Set<String>, Set<TextWithImports>> usedVars, @NotNull SourcePosition sourcePosition, @NotNull EvaluationContextImpl evalContext) { Set<String> alreadyCollected = new HashSet<>(usedVars.first); usedVars.second.stream().map(TextWithImports::getText).forEach(alreadyCollected::add); Set<TextWithImports> extra = new HashSet<>(); DebuggerUtilsImpl.forEachSafe(FrameExtraVariablesProvider.EP_NAME, provider -> { if (provider.isAvailable(sourcePosition, evalContext)) { extra.addAll(provider.collectVariables(sourcePosition, evalContext, alreadyCollected)); } }); return extra; }