diff --git a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/JavaI18nUtil.java b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/JavaI18nUtil.java index 489b8ae0348e..1c8b26f4e040 100644 --- a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/JavaI18nUtil.java +++ b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/JavaI18nUtil.java @@ -141,6 +141,15 @@ public final class JavaI18nUtil extends I18nUtil { } expression = parent; if (UastExpressionUtils.isAssignment(expression)) break; + if (expression instanceof UCallExpression) { + UastCallKind kind = ((UCallExpression)expression).getKind(); + if (kind == UastCallKind.METHOD_CALL) { + if (expression.getUastParent() instanceof UQualifiedReferenceExpression) { + expression = (UExpression)expression.getUastParent(); + } + break; + } + } } return expression; } diff --git a/plugins/java-i18n/testData/inspections/i18n/StringMethods.java b/plugins/java-i18n/testData/inspections/i18n/StringMethods.java index e5a1c88483be..0ba8a29d9f0e 100644 --- a/plugins/java-i18n/testData/inspections/i18n/StringMethods.java +++ b/plugins/java-i18n/testData/inspections/i18n/StringMethods.java @@ -25,6 +25,12 @@ class StringMethods { if ("foo".equals(foo)) {} if ("foo".equalsIgnoreCase(foo)) {} } + + void testBooleanOp() { + String foo = getFoo(); + if (!foo.equals("foo")) {} + if (foo.startsWith("foo") && foo.endsWith("foo")) {} + } void testUnresolved() { String foo = getUnresolved();