diff --git a/java/java-impl/src/com/intellij/codeInspection/uncheckedWarnings/UncheckedWarningLocalInspection.java b/java/java-impl/src/com/intellij/codeInspection/uncheckedWarnings/UncheckedWarningLocalInspection.java index 6e72cc7230a9..31e4394f29d1 100644 --- a/java/java-impl/src/com/intellij/codeInspection/uncheckedWarnings/UncheckedWarningLocalInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/uncheckedWarnings/UncheckedWarningLocalInspection.java @@ -24,7 +24,10 @@ import com.intellij.codeInsight.daemon.impl.quickfix.VariableArrayTypeFix; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInsight.intention.QuickFixFactory; import com.intellij.codeInsight.quickfix.ChangeVariableTypeQuickFixProvider; -import com.intellij.codeInspection.*; +import com.intellij.codeInspection.BaseJavaLocalInspectionTool; +import com.intellij.codeInspection.InspectionsBundle; +import com.intellij.codeInspection.LocalQuickFix; +import com.intellij.codeInspection.ProblemsHolder; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.util.Pass; @@ -248,7 +251,7 @@ public class UncheckedWarningLocalInspection extends BaseJavaLocalInspectionTool PsiParameter parameter = parameters[Math.min(i, parameters.length - 1)]; final PsiExpression expression = expressions[i]; final PsiType parameterType = substitutor.substitute(parameter.getType()); - final PsiType expressionType = substitutor.substitute(expression.getType()); + final PsiType expressionType = expression.getType(); if (expressionType != null) { checkRawToGenericsAssignment(expression, parameterType, expressionType, true, myGenerifyFixes); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/UncheckedWarningsLevel6.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/UncheckedWarningsLevel6.java new file mode 100644 index 000000000000..ad6d8e79d114 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/UncheckedWarningsLevel6.java @@ -0,0 +1,94 @@ +import java.util.*; +class GenericsTest { + + static S next(GenericsTest test) + { + System.out.println(test); + return null; + } + + public Iterator iterator() + { + return new Iterator() { + @Override + public boolean hasNext() + { + return false; + } + + @Override + public T next() + { + return GenericsTest.next(GenericsTest.this); + } + + @Override + public void remove() + { + } + }; + } +} + +class GenericsTest1 { + + static S next1(GenericsTest1 test) + { + System.out.println(test); + return null; + } + + public Iterator iterator() + { + return new Iterator() { + @Override + public boolean hasNext() + { + return false; + } + + @Override + public T next() + { + return GenericsTest1.next1(GenericsTest1.this); + } + + @Override + public void remove() + { + } + }; + } +} + + +class GenericsTest2 { + + static S next2(GenericsTest2 test) + { + System.out.println(test); + return null; + } + + public Iterator iterator() + { + return new Iterator() { + @Override + public boolean hasNext() + { + return false; + } + + @Override + public T next() + { + return next2(GenericsTest2.this); + } + + @Override + public void remove() + { + } + }; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java index cb955b02e898..ea10fc48869b 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -119,6 +119,8 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testTypeParameterBoundVisibility() throws Exception { doTest(false);} public void testTypeParameterBoundVisibilityJdk14() throws Exception { doTest(false);} + public void testUncheckedWarningsLevel6() throws Exception { doTest(true);} + public void testJavaUtilCollections_NoVerify() throws Exception { PsiClass collectionsClass = getJavaFacade().findClass("java.util.Collections", GlobalSearchScope.moduleWithLibrariesScope(getModule()));