public static boolean isNonNlsAnnotatedUse(
    @Nullable PsiExpression expression) {
    if (expression == null) {
      return false;
    }
    final Boolean value = getCachedValue(expression, KEY);
    if (value != null) {
      return value.booleanValue();
    }
    PsiElement element = expression;
    while(true) {
      element = PsiTreeUtil.getParentOfType(element,
                                            PsiFunctionalExpression.class,
                                            PsiExpressionList.class,
                                            PsiAssignmentExpression.class,
                                            PsiVariable.class,
                                            PsiReturnStatement.class);
      if (!(element instanceof PsiFunctionalExpression)) {
        break;
      }
      PsiElement parent = PsiUtil.skipParenthesizedExprUp(element.getParent());
      if (parent instanceof PsiExpressionList) {
        element = parent;
      }
    }
    final boolean result;
    if (element instanceof PsiExpressionList expressionList) {
      result = isNonNlsAnnotatedParameter(expression, expressionList);
    }
    else if (element instanceof PsiVariable) {
      result = isNonNlsAnnotatedModifierListOwner(element);
    }
    else if (element instanceof PsiAssignmentExpression assignmentExpression) {
      result =
        isAssignmentToNonNlsAnnotatedVariable(assignmentExpression);
    }
    else if (element instanceof PsiReturnStatement) {
      final PsiMethod method =
        PsiTreeUtil.getParentOfType(element, PsiMethod.class);
      result = isNonNlsAnnotatedModifierListOwner(method);
    }
    else {
      result = false;
    }
    putCachedValue(expression, KEY, Boolean.valueOf(result));
    return result;
  }
public static boolean isNonNlsAnnotatedUse(
    @Nullable PsiExpression expression)