From 5c25b28ec06e60affbbddd4a55d5ffa4e30e0a0e Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 7 Nov 2017 11:21:15 +0700 Subject: [PATCH] IDEA-181667 Always true assert is reported when expression is parenthesised --- .../codeInspection/dataFlow/DataFlowInspectionBase.java | 2 +- .../testData/inspection/dataFlow/fixture/SkipAssertions.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java index a653a1873759..2fff2d5f3892 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java @@ -706,7 +706,7 @@ public class DataFlowInspectionBase extends AbstractBaseJavaLocalInspectionTool } private static boolean isAssertionEffectively(PsiElement psiAnchor, boolean evaluatesToTrue) { - PsiElement parent = psiAnchor.getParent(); + PsiElement parent = PsiUtil.skipParenthesizedExprUp(psiAnchor.getParent()); if (parent instanceof PsiAssertStatement) { return evaluatesToTrue; } diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/SkipAssertions.java b/java/java-tests/testData/inspection/dataFlow/fixture/SkipAssertions.java index 486fdcb5ad4e..b0863ee8dc13 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/SkipAssertions.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/SkipAssertions.java @@ -5,6 +5,10 @@ class Test { assert foo != null; } + private static void testParens(@NotNull Object foo) { + assert (foo != null); + } + private static void test2(@NotNull Object foo) { if (foo == null) { throw new IllegalArgumentException();