Support KParameter.isOptional

#KT-8825 Fixed
This commit is contained in:
Alexander Udalov
2015-08-20 16:47:48 -07:00
parent fd97383f8a
commit 0d62680f63
4 changed files with 43 additions and 0 deletions
@@ -19,6 +19,7 @@ package kotlin.reflect.jvm.internal
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
import org.jetbrains.kotlin.descriptors.annotations.Annotated
import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue
import kotlin.reflect.KParameter
import kotlin.reflect.KType
@@ -42,6 +43,9 @@ class KParameterImpl(
override val type: KType
get() = KTypeImpl(descriptor.type) { callable.caller.parameterTypes[index] }
override val isOptional: Boolean
get() = (descriptor as? ValueParameterDescriptor)?.hasDefaultValue() ?: false
override fun equals(other: Any?) =
other is KParameterImpl && callable == other.callable && descriptor == other.descriptor