diff --git a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nInspection.java b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nInspection.java index 9e922b7e748e..56b50c39b97f 100644 --- a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nInspection.java +++ b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nInspection.java @@ -1050,8 +1050,8 @@ public class I18nInspection extends AbstractBaseUastLocalInspectionTool implemen ULocalVariable uVar = UastContextKt.toUElement(resolved, ULocalVariable.class); if (uVar != null) { UExpression initializer = uVar.getUastInitializer(); - if (initializer instanceof UCallExpression) { - PsiMethod method = ((UCallExpression)initializer).resolve(); + if (initializer instanceof UResolvable) { + PsiModifierListOwner method = ObjectUtils.tryCast(((UResolvable)initializer).resolve(), PsiModifierListOwner.class); if (method != null) { if (annotatedAsNonNls(method)) return true; nonNlsTargets.add(method); diff --git a/plugins/java-i18n/testData/inspections/i18n/PropagateToInterfaceMethod.java b/plugins/java-i18n/testData/inspections/i18n/PropagateToInterfaceMethod.java new file mode 100644 index 000000000000..745953ad9e56 --- /dev/null +++ b/plugins/java-i18n/testData/inspections/i18n/PropagateToInterfaceMethod.java @@ -0,0 +1,22 @@ +import org.jetbrains.annotations.NonNls; + +class Test { + interface X { + @NonNls String getInterfaceString(); + } + + @NonNls String getLocalString() { return "s"; } + + void test(X x){ + final String s1 = x.getInterfaceString(); + if (s1.equals("test")) { + System.out.println(); + } + + final String s2 = getLocalString(); + if (s2.equals("test")) { + System.out.println(); + } + } + +} \ No newline at end of file diff --git a/plugins/java-i18n/testSrc/com/intellij/codeInspection/i18n/I18NInspectionTest.java b/plugins/java-i18n/testSrc/com/intellij/codeInspection/i18n/I18NInspectionTest.java index 567e039f3ba5..58e59d9b9d11 100644 --- a/plugins/java-i18n/testSrc/com/intellij/codeInspection/i18n/I18NInspectionTest.java +++ b/plugins/java-i18n/testSrc/com/intellij/codeInspection/i18n/I18NInspectionTest.java @@ -61,6 +61,9 @@ public class I18NInspectionTest extends LightJavaCodeInsightFixtureTestCase { myTool.setNonNlsCommentPattern("MYNON-NLS"); doTest(); } + public void testPropagateToInterfaceMethod() { + doTest(); + } public void testNlsOnly() { doTestNlsMode();