Add varargs tests; show ... before vararg arguments

This commit is contained in:
Dmitry Jemerov
2017-04-22 11:48:46 +02:00
parent c9639f6ae0
commit 26445397bb
2 changed files with 42 additions and 1 deletions
@@ -126,7 +126,8 @@ private enum class HintType(desc: String, enabled: Boolean) {
resolvedArg.arguments.firstOrNull()?.let { arg ->
arg.getArgumentExpression()?.let { argExp ->
if (!arg.isNamed() && !valueParam.name.isSpecial && argExp.isUnclearExpression()) {
return@mapNotNull InlayInfo(valueParam.name.identifier, argExp.startOffset)
val prefix = if (valueParam.varargElementType != null) "..." else ""
return@mapNotNull InlayInfo(prefix + valueParam.name.identifier, argExp.startOffset)
}
}
}
@@ -52,4 +52,44 @@ class InlayParameterHintsTest : KotlinLightCodeInsightFixtureTestCase() {
val t = IllegalStateException("crime");
}""")
}
fun `test single varargs hint`() {
check("""
fun main() {
testBooleanVarargs(<hint text="test:" />13, <hint text="...booleans:" />false)
}
fun testBooleanVarargs(test: Int, vararg booleans: Boolean): Boolean {
return false
}
}
""")
}
fun `test no hint if varargs null`() {
check("""
fun main() {
testBooleanVarargs(<hint text="test:" />13)
}
fun testBooleanVarargs(test: Int, vararg booleans: Boolean): Boolean {
return false
}
""")
}
fun `test multiple vararg hint`() {
check("""
fun main() {
testBooleanVarargs(<hint text="test:" />13, <hint text="...booleans:" />false, true, false)
}
fun testBooleanVarargs(test: Int, vararg booleans: Boolean): Boolean {
return false
}
""")
}
}