diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/afterSwitchParens.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/afterSwitchParens.java new file mode 100644 index 000000000000..0eb26cea7705 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/afterSwitchParens.java @@ -0,0 +1,9 @@ +// "Replace call with method body" "true" + +import java.util.function.IntSupplier; + +public class Main { + public void call() { + switch((0)) {} + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/beforeSwitchParens.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/beforeSwitchParens.java new file mode 100644 index 000000000000..d76b1bbe485c --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/trivialFunctionalExpressionUsage/beforeSwitchParens.java @@ -0,0 +1,9 @@ +// "Replace call with method body" "true" + +import java.util.function.IntSupplier; + +public class Main { + public void call() { + switch((new IntSupplier() {public int getAsInt() { return 0;}}.getAsInt())) {} + } +} diff --git a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java index a7447519bfce..b7a312866be8 100644 --- a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java +++ b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java @@ -101,7 +101,7 @@ public class TrivialFunctionalExpressionUsageInspection extends AbstractBaseJava if (returnStatements.length > 1) { return false; } - final PsiElement callParent = call.getParent(); + final PsiElement callParent = PsiUtil.skipParenthesizedExprUp(call.getParent()); return callParent instanceof PsiStatement || callParent instanceof PsiLocalVariable; }, newExpression, aClass.getBaseClassType(), new ReplaceAnonymousWithLambdaBodyFix());