boolean ( @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; }