diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java index 39696a69a16a..ca4e2a361f55 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java @@ -37,6 +37,8 @@ public class HardcodedContracts { final int paramCount = method.getParameterList().getParametersCount(); String className = owner.getQualifiedName(); + if (className == null) return Collections.emptyList(); + String methodName = method.getName(); if ("java.lang.System".equals(className)) { @@ -76,6 +78,7 @@ public class HardcodedContracts { "org.junit.Assert".equals(className) || "junit.framework.TestCase".equals(className) || "com.google.common.truth.Truth".equals(className) || + className.startsWith("org.assertj.core.api.") || "org.testng.Assert".equals(className) || "org.testng.AssertJUnit".equals(className)) { return handleTestFrameworks(paramCount, className, methodName, call); diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/AssertThat.java b/java/java-tests/testData/inspection/dataFlow/fixture/AssertThat.java index b3d614cd8cb3..1c8033085d37 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/AssertThat.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/AssertThat.java @@ -1,5 +1,6 @@ import org.hamcrest.CoreMatchers; import org.jetbrains.annotations.Nullable; +import org.assertj.core.api.Assertions; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; @@ -15,4 +16,9 @@ class Contracts { int length = test.length(); } + public void checkAssertJ(@Nullable Object object) { + Assertions.assertThat(object).isNotNull(); + System.out.println(object.toString()); + } + } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java index d79d3fca6a90..e080fd7cf192 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java @@ -388,6 +388,14 @@ public class DataFlowInspectionTest extends DataFlowInspectionTestCase { "public static void assertThat(T actual, org.hamcrest.Matcher matcher) {}\n" + "public static void assertThat(String msg, T actual, org.hamcrest.Matcher matcher) {}\n" + "}"); + + myFixture.addClass("package org.assertj.core.api; public class Assertions { " + + "public static AbstractObjectAssert assertThat(Object actual) {}\n" + + "}"); + myFixture.addClass("package org.assertj.core.api; public class AbstractObjectAssert, A> {" + + "public S isNotNull() {}" + + "}"); + myFixture.enableInspections(new DataFlowInspection()); myFixture.testHighlighting(true, false, true, getTestName(false) + ".java"); }