From 626278150e600d2535723309bc616afe546f9094 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 13 Sep 2017 10:27:14 +0700 Subject: [PATCH] IDEA-178846 False positive "Excessive lambda usage" inspection --- .../ExcessiveLambdaUsageInspection.java | 2 +- .../beforeJUnit5AssertTimeout.java | 17 +++++++++++++++++ .../ExcessiveLambdaUsageInspectionTest.java | 7 +++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/excessiveLambdaUsage/beforeJUnit5AssertTimeout.java diff --git a/java/java-impl/src/com/intellij/codeInspection/ExcessiveLambdaUsageInspection.java b/java/java-impl/src/com/intellij/codeInspection/ExcessiveLambdaUsageInspection.java index cffed20e7c7e..12e2f4ab5f65 100644 --- a/java/java-impl/src/com/intellij/codeInspection/ExcessiveLambdaUsageInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/ExcessiveLambdaUsageInspection.java @@ -42,7 +42,7 @@ public class ExcessiveLambdaUsageInspection extends BaseJavaBatchLocalInspection new ExcessiveLambdaInfo("java.util.OptionalDouble", "orElseGet", "orElse", 0, true), new ExcessiveLambdaInfo("com.google.common.base.Optional", "or", "*", 0, true), new ExcessiveLambdaInfo("java.util.Objects", "requireNonNull", "*", 1, true), - new ExcessiveLambdaInfo("org.junit.jupiter.api.Assertions", "assert.*|fail", "*", -1, true), + new ExcessiveLambdaInfo("org.junit.jupiter.api.Assertions", "assert(?!Timeout).*|fail", "*", -1, true), new ExcessiveLambdaInfo("org.junit.jupiter.api.Assertions", "assert(True|False)", "*", 0, true), }; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/excessiveLambdaUsage/beforeJUnit5AssertTimeout.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/excessiveLambdaUsage/beforeJUnit5AssertTimeout.java new file mode 100644 index 000000000000..9bea3a2baa52 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/excessiveLambdaUsage/beforeJUnit5AssertTimeout.java @@ -0,0 +1,17 @@ +// "Fix all 'Excessive lambda usage' problems in file" "false" +package org.junit.jupiter.api; + +interface Supplier { + T supply(); +} + +class Assertions { + static void assertTimeout(Object duration, String message) {}; + static void assertTimeout(Object duration, Supplier message) {}; +} + +class Test { + public void test() { + Assertions.assertTimeout(null, () -> "a result"); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/ExcessiveLambdaUsageInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/ExcessiveLambdaUsageInspectionTest.java index d0d4b0e0f88d..b81759f59c94 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/ExcessiveLambdaUsageInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/ExcessiveLambdaUsageInspectionTest.java @@ -18,6 +18,8 @@ package com.intellij.java.codeInsight.daemon.quickFix; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase; import com.intellij.codeInspection.ExcessiveLambdaUsageInspection; import com.intellij.codeInspection.LocalInspectionTool; +import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.testFramework.IdeaTestUtil; import org.jetbrains.annotations.NotNull; @@ -30,6 +32,11 @@ public class ExcessiveLambdaUsageInspectionTest extends LightQuickFixParameteriz }; } + @Override + protected Sdk getProjectJDK() { + return IdeaTestUtil.getMockJdk9(); + } + public void test() { doAllTests(); } @Override