@NotNull
  private static MultiMap<Integer, String> calcNames(@NotNull final StackFrameContext context, final int firstLocalsSlot) {
    SourcePosition position = ContextUtil.getSourcePosition(context);
    if (position != null) {
      return ReadAction.compute(() -> {
        PsiElement element = position.getElementAt();
        PsiElement method = DebuggerUtilsEx.getContainingMethod(element);
        if (method != null) {
          MultiMap<Integer, String> res = new MultiMap<>();
          int slot = Math.max(0, firstLocalsSlot - getParametersStackSize(method));
          for (PsiParameter parameter : DebuggerUtilsEx.getParameters(method)) {
            res.putValue(slot, parameter.getName());
            slot += getTypeSlotSize(parameter.getType());
          }
          PsiElement body = DebuggerUtilsEx.getBody(method);
          if (body != null) {
            try {
              body.accept(new LocalVariableNameFinder(firstLocalsSlot, res, element));
            }
            catch (Exception e) {
              LOG.info(e);
            }
          }
          return res;
        }
        return MultiMap.empty();
      });
    }
    return MultiMap.empty();
  }
@NotNull
  private static MultiMap<Integer, String> calcNames(@NotNull final StackFrameContext context, final int firstLocalsSlot)