No parameter names in types for error messages

This commit is contained in:
Valentin Kipyatkov
2016-09-14 16:15:04 +03:00
parent 6527ada775
commit 3bd39df587
11 changed files with 32 additions and 10 deletions
@@ -193,6 +193,7 @@ interface DescriptorRendererOptions {
var renderConstructorKeyword: Boolean
var renderUnabbreviatedType: Boolean
var includeAdditionalModifiers: Boolean
var parameterNamesInFunctionalTypes: Boolean
}
object ExcludedTypeAnnotations {
@@ -310,16 +310,16 @@ internal class DescriptorRendererImpl(
append("(")
val parameterTypes = getValueParameterTypesFromFunctionType(type)
val parameterNames = type.getParameterNamesFromFunctionType() ?: parameterTypes.map { SpecialNames.NO_NAME_PROVIDED }
assert(parameterNames.size == parameterTypes.size) { "Number of names does not match number of types for $type"}
val parameterNames = if (parameterNamesInFunctionalTypes) type.getParameterNamesFromFunctionType() else null
assert(parameterNames == null || parameterNames.size == parameterTypes.size) { "Number of names does not match number of types for $type"}
for (index in parameterTypes.indices) {
val typeProjection = parameterTypes[index]
val name = parameterNames[index]
val name = parameterNames?.get(index)
if (index > 0) append(", ")
if (!name.isSpecial) {
if (name != null && !name.isSpecial) {
append(renderName(name))
append(": ")
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.renderer
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.types.KotlinType
import java.lang.IllegalStateException
import java.lang.reflect.Modifier
import kotlin.jvm.internal.PropertyReference1Impl
import kotlin.properties.Delegates
@@ -103,4 +104,6 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var renderUnabbreviatedType: Boolean by property(true)
override var includeAdditionalModifiers: Boolean by property(true)
override var parameterNamesInFunctionalTypes: Boolean by property(true)
}