From 59c3fd672aa671fab77414b0ee625b2143443aa9 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 13 Oct 2017 13:04:12 +0700 Subject: [PATCH] IDEA-180417 Generated code ("Replace with collect") is invalid --- .../codeInspection/streamMigration/CollectMigration.java | 5 +++++ .../streamApiMigration/collect/afterCollectGuavaMap.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java b/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java index f688230ddf60..309ffaeb1030 100644 --- a/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java +++ b/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java @@ -586,6 +586,11 @@ class CollectMigration extends BaseStreamApiMigration { myElementVariable = elementVariable; } + @Override + String generateIntermediate() { + return myElementVariable.getType() instanceof PsiPrimitiveType ? ".boxed()" : ""; + } + @Override public String generateTerminal() { PsiExpression[] args = myMapUpdateCall.getArgumentList().getExpressions(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/collect/afterCollectGuavaMap.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/collect/afterCollectGuavaMap.java index 17fdbf12ccc2..925f7706b5da 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/collect/afterCollectGuavaMap.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/collect/afterCollectGuavaMap.java @@ -13,7 +13,7 @@ class Maps { public class Test { public void test() { - Map map = IntStream.range(0, 10).filter(i -> i % 2 == 0).collect(Collectors.toMap(String::valueOf, i -> i, (a, b) -> b)); + Map map = IntStream.range(0, 10).filter(i -> i % 2 == 0).boxed().collect(Collectors.toMap(String::valueOf, i -> i, (a, b) -> b)); System.out.println(map); } }