diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java index 6f503534cb9c..b4ca43f4cc0b 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java @@ -109,7 +109,8 @@ public class StreamApiMigrationInspection extends BaseJavaBatchLocalInspectionTo } if (ExceptionUtil.getThrownCheckedExceptions(new PsiElement[] {body}).isEmpty()) { - if (isCollectCall(body, statement.getIterationParameter())) { + if (!(iteratedValueType instanceof PsiClassType && ((PsiClassType)iteratedValueType).isRaw()) && + isCollectCall(body, statement.getIterationParameter())) { holder.registerProblem(iteratedValue, "Can be replaced with collect call", ProblemHighlightType.GENERIC_ERROR_OR_WARNING, new ReplaceWithCollectCallFix()); } else if (!isTrivial(body, statement.getIterationParameter())) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeRawCollection.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeRawCollection.java new file mode 100644 index 000000000000..fd51db79f84e --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeRawCollection.java @@ -0,0 +1,22 @@ +// "Replace with forEach" "false" +import java.util.*; +import java.util.stream.Collectors + +class A { + public static List toTypedList1(Collection collection, Class aClass) { + if (collection.size() == 0) { + return Collections.emptyList(); + } + + List result = new ArrayList<>(collection.size()); + + for (Object obj : collection) { + result.add(aClass.cast(obj)); + } + + return result; + } + + + +} \ No newline at end of file