diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java index 5b52a0652db5..75df5e590034 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java @@ -59,7 +59,7 @@ public class ParameterNameHintsManager { myDescriptors = descriptors; } - static boolean isLiteralExpression(@Nullable PsiElement callArgument) { + static boolean isUnclearExpression(@Nullable PsiElement callArgument) { if (callArgument instanceof PsiLiteralExpression) return true; @@ -70,6 +70,10 @@ public class ParameterNameHintsManager { || JavaTokenType.PLUS.equals(tokenType)) && expr.getOperand() instanceof PsiLiteralExpression; } + if (callArgument instanceof PsiThisExpression) { + return true; + } + return false; } @@ -150,7 +154,7 @@ public class ParameterNameHintsManager { return true; } - if (isLiteralExpression(argument)) { + if (isUnclearExpression(argument)) { PsiType parameterType = resolveResult.getSubstitutor().substitute(paramType); return TypeConversionUtil.isAssignable(parameterType, argType); } @@ -166,7 +170,7 @@ public class ParameterNameHintsManager { private static boolean hasLiteralInVarargs(int index, PsiExpression[] callArguments) { for (int i = index; i < callArguments.length; i++) { PsiExpression arg = callArguments[i]; - if (isLiteralExpression(arg)) return true; + if (isUnclearExpression(arg)) return true; } return false; } @@ -178,7 +182,7 @@ public class ParameterNameHintsManager { private static boolean hasLiteralExpression(@NotNull PsiExpression[] arguments) { for (PsiExpression argument : arguments) { - if (isLiteralExpression(argument)) return true; + if (isUnclearExpression(argument)) return true; } return false; } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt index 8e6bdb4f91e1..23956dad34a9 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt @@ -424,6 +424,24 @@ public class VarArgTest { onLineStartingWith("check(") .assertInlays("beginIndex->10", "endIndex->1000", """x->"su"""" ) } + + fun `test inline this`() { + setup(""" +public class VarArgTest { + + public void main() { + check(this, 1000); + } + + public void check(VarArgTest test, int endIndex) { + } + +} +""") + + onLineStartingWith("check(t") + .assertInlays("test->this", "endIndex->1000") + } private fun onLineStartingWith(text: String): InlayAssert {