From 027df2e7c9164a3395ddfdab8782ed348fa023ef Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Thu, 27 Oct 2016 16:02:17 +0300 Subject: [PATCH] [Parameter Name Hints] do not show hints for generic builders (IDEA-163214) --- .../hints/JavaParameterHintManager.java | 2 +- .../inlays/JavaParameterNameHintsTest.kt | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/hints/JavaParameterHintManager.java b/java/java-impl/src/com/intellij/codeInsight/hints/JavaParameterHintManager.java index 3c7c177cfad2..caa48a8677f8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hints/JavaParameterHintManager.java +++ b/java/java-impl/src/com/intellij/codeInsight/hints/JavaParameterHintManager.java @@ -60,7 +60,7 @@ public class JavaParameterHintManager { if (expression instanceof PsiNewExpression) { return false; } - final PsiType returnType = method.getReturnType(); + PsiType returnType = TypeConversionUtil.erasure(method.getReturnType()); final PsiClass aClass = method.getContainingClass(); final String calledMethodFqn = aClass != null ? aClass.getQualifiedName() : null; if (calledMethodFqn != null && returnType != null) { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/JavaParameterNameHintsTest.kt b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/JavaParameterNameHintsTest.kt index 1c90545bf476..68dc08fec315 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/JavaParameterNameHintsTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/JavaParameterNameHintsTest.kt @@ -92,6 +92,28 @@ class Fooo { onLineStartingWith("assertEquals").assertInlays("expected->\"fooo\"") onLineStartingWith("show").assertInlays("message->\"Hi\"") } + + fun `test no hints for generic builders`() { + setup(""" +class Foo { + void test() { + new IntStream().skip(10); + new Stream().skip(10); + } +} + +class IntStream { + public IntStream skip(int n) {} +} + +class Stream { + public Stream skip(int n) {} +} +""") + + onLineStartingWith("new IntStream").assertNoInlays() + onLineStartingWith("new Stream").assertNoInlays() + } fun `test do not show hints on setters`() { setup("""class Groo {