private static Set<TextWithImports> computeExtraVars(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;
  }
private static Set<TextWithImports> computeExtraVars(Pair<Set<String>, Set<TextWithImports>> usedVars,
                                                       @NotNull SourcePosition sourcePosition,
                                                       @NotNull EvaluationContextImpl evalContext)