From 417fbcd8fc4551a5b3b6e1d11d6bbb0b25d6b3d3 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Tue, 10 Oct 2017 13:01:10 +0300 Subject: [PATCH] IDEA-180276 Broken generics parameter type for completion --- .../hint/api/impls/MethodParameterInfoHandler.java | 4 +++- .../java/codeInsight/completion/CompletionHintsTest.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java b/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java index 3eca00425d21..80fcd212d04e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java @@ -21,6 +21,7 @@ import com.intellij.openapi.editor.Inlay; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.impl.source.resolve.CompletionParameterTypeInferencePolicy; @@ -586,7 +587,8 @@ public class MethodParameterInfoHandler implements ParameterInfoHandlerWithTabAc } if (context.isSingleParameterInfo()) buffer.append(""); appendModifierList(buffer, param); - buffer.append(paramType.getPresentableText(true)); + String type = paramType.getPresentableText(true); + buffer.append(context.isSingleParameterInfo() ? StringUtil.escapeXml(type) : type); String name = param.getName(); if (name != null && !context.isSingleParameterInfo()) { buffer.append(" "); diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/CompletionHintsTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/CompletionHintsTest.java index 244b429ae624..ad03f90aa65f 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/CompletionHintsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/CompletionHintsTest.java @@ -708,6 +708,13 @@ public class CompletionHintsTest extends LightFixtureCompletionTestCase { checkResultWithInlays("class C { void m() { String local = \"a\"; String local2 = \"b\"; System.getProperty(local, ) } }"); } + public void testGenericType() throws Exception { + configureJava("class C { void abcd(Class c) {} void m() { abc } }"); + complete(); + waitForAllAsyncStuff(); + checkHintContents("Class<?>"); + } + private void checkResult(String text) { myFixture.checkResult(text); }