diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/SuspiciousToArrayCallInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/SuspiciousToArrayCallInspection.java index 95da9111b479..314a7c75bf5c 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/SuspiciousToArrayCallInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/SuspiciousToArrayCallInspection.java @@ -91,7 +91,8 @@ public class SuspiciousToArrayCallInspection extends BaseInspection { if (arguments.length != 1) { return; } - final PsiExpression argument = arguments[0]; + final PsiExpression argument = PsiUtil.skipParenthesizedExprDown(arguments[0]); + if (argument == null) return; final PsiClassType classType = (PsiClassType)type; final PsiClass aClass = classType.resolve(); diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/SuspiciousToArrayCallInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/SuspiciousToArrayCallInspectionTest.java index ffb5a1001898..e690cbc40db4 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/SuspiciousToArrayCallInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/SuspiciousToArrayCallInspectionTest.java @@ -77,16 +77,25 @@ public class SuspiciousToArrayCallInspectionTest extends LightInspectionTestCase public void testStreams() { doTest("import java.util.stream.Stream;\n" + "class Test {\n" + - " {\n" + + " static {\n" + " Stream.of(1.0, 2.0, 3.0).toArray(/*Array of type 'java.lang.Double[]' expected, 'java.lang.Integer[]' found*/Integer[]::new/**/);\n" + " }\n" + "}"); } + public void testStreamsParens() { + doTest("import java.util.stream.Stream;\n" + + "class Test {\n" + + " static {\n" + + " Stream.of(1.0, 2.0, 3.0).toArray(((/*Array of type 'java.lang.Double[]' expected, 'java.lang.Integer[]' found*/Integer[]::new/**/)));\n" + + " }\n" + + "}"); + } + public void testStreamsIntersection() { doTest("import java.util.stream.Stream;\n" + "class Test {\n" + - " {\n" + + " static {\n" + " Stream.of(1, 2.0, 3.0).toArray(/*Array of type 'java.lang.Number[]' expected, 'java.lang.Integer[]' found*/Integer[]::new/**/);\n" + " }\n" + "}");