diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StringEqualityInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StringEqualityInspection.java
index 0ac07245fd8f..f94f495993d7 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StringEqualityInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StringEqualityInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2014 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package com.siyeh.ig.bugs;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.PsiJavaToken;
-import com.intellij.psi.PsiKeyword;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
@@ -73,12 +72,7 @@ public class StringEqualityInspection extends BaseInspection {
if (rhs == null || !ExpressionUtils.hasStringType(rhs)) {
return;
}
- final String lhsText = lhs.getText();
- if (PsiKeyword.NULL.equals(lhsText)) {
- return;
- }
- final String rhsText = rhs.getText();
- if (PsiKeyword.NULL.equals(rhsText)) {
+ if (ExpressionUtils.isNullLiteral(lhs) || ExpressionUtils.isNullLiteral(rhs)) {
return;
}
final PsiJavaToken sign = expression.getOperationSign();
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java
index 46969fd5bcfc..57c635b7d461 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006-2013 Bas Leijdekkers
+ * Copyright 2006-2014 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@ import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.psiutils.BoolUtils;
+import com.siyeh.ig.psiutils.ExpressionUtils;
import com.siyeh.ig.psiutils.IteratorUtils;
import com.siyeh.ig.psiutils.VariableAccessUtils;
import org.jetbrains.annotations.NotNull;
@@ -118,8 +119,7 @@ public class LoopConditionNotUpdatedInsideLoopInspection
if (condition == null) {
return false;
}
- if (PsiUtil.isConstantExpression(condition) ||
- PsiKeyword.NULL.equals(condition.getText())) {
+ if (PsiUtil.isConstantExpression(condition) || ExpressionUtils.isNullLiteral(condition)) {
return true;
}
if (condition instanceof PsiInstanceOfExpression) {
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java
index fc6d2580b3e9..242bec97a398 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2013 Bas Leijdekkers
+ * Copyright 2005-2014 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -198,11 +198,8 @@ public class ExpressionUtils {
}
public static boolean isNullLiteral(@Nullable PsiExpression expression) {
- if (!(expression instanceof PsiLiteralExpression)) {
- return false;
- }
- final String text = expression.getText();
- return PsiKeyword.NULL.equals(text);
+ expression = ParenthesesUtils.stripParentheses(expression);
+ return expression != null && PsiType.NULL.equals(expression.getType());
}
public static boolean isZero(@Nullable PsiExpression expression) {
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java
index fc33b79cd533..17c4b5127c3b 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java
@@ -7,4 +7,8 @@ public class StringEquality {
final boolean b = t == s;
final boolean c = t ==
}
+
+ void notEquals(String s, String t) {
+ boolean a = s != t;
+ }
}