static @Nullable DuplicateExpressionsContext getOrCreateContext(@NotNull PsiExpression expression, @NotNull UserDataHolder session) {
    PsiCodeBlock nearestBody = findNearestBody(expression);
    if (nearestBody != null) {
      Map<PsiCodeBlock, DuplicateExpressionsContext> contexts = session.getUserData(CONTEXTS_KEY);
      if (contexts == null) {
        session.putUserData(CONTEXTS_KEY, contexts = new HashMap<>());
      }
      return contexts.computeIfAbsent(nearestBody, unused -> new DuplicateExpressionsContext());
    }
    return null;
  }
static @Nullable DuplicateExpressionsContext getOrCreateContext(@NotNull PsiExpression expression, @NotNull UserDataHolder session)