From 827335a9c1acbbcfc4ddcead264264cdd66d210b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 5 Aug 2020 20:34:07 +0200 Subject: [PATCH] i18n: allow NonNls on Object, Serializable etc (IDEA-247438) GitOrigin-RevId: 2504fd617e0a0caa31979dbc7f70e8ff0e91352d --- .../NonNlsAnnotationProvider.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/externalAnnotation/NonNlsAnnotationProvider.java b/java/java-impl/src/com/intellij/codeInsight/externalAnnotation/NonNlsAnnotationProvider.java index 6d6574f9fd45..a6f9ea3581e2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/externalAnnotation/NonNlsAnnotationProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/externalAnnotation/NonNlsAnnotationProvider.java @@ -3,10 +3,7 @@ package com.intellij.codeInsight.externalAnnotation; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.openapi.project.Project; -import com.intellij.psi.PsiMethod; -import com.intellij.psi.PsiModifierListOwner; -import com.intellij.psi.PsiType; -import com.intellij.psi.PsiVariable; +import com.intellij.psi.*; import com.siyeh.ig.psiutils.TypeUtils; import org.jetbrains.annotations.NotNull; @@ -19,12 +16,15 @@ public class NonNlsAnnotationProvider implements AnnotationProvider { @Override public boolean isAvailable(PsiModifierListOwner owner) { - return owner instanceof PsiMethod && isString(((PsiMethod)owner).getReturnType()) || - owner instanceof PsiVariable && isString(((PsiVariable)owner).getType()); + return owner instanceof PsiMethod && isAssignableFromString(((PsiMethod)owner).getReturnType(), owner) || + owner instanceof PsiVariable && isAssignableFromString(((PsiVariable)owner).getType(), owner); } - private static boolean isString(PsiType type) { - return type != null && TypeUtils.isJavaLangString(type.getDeepComponentType()); + private static boolean isAssignableFromString(PsiType type, PsiElement context) { + if (type == null) { + return false; + } + return type.getDeepComponentType().isAssignableFrom(TypeUtils.getStringType(context)); } @Override