AnnotationUtil: Do not throw on ErrorValue constant
This commit is contained in:
@@ -24,6 +24,8 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
||||
import org.jetbrains.kotlin.resolve.constants.ErrorValue
|
||||
|
||||
fun DeclarationDescriptor.hasJvmStaticAnnotation(): Boolean {
|
||||
return annotations.findAnnotation(FqName("kotlin.jvm.JvmStatic")) != null
|
||||
@@ -52,7 +54,12 @@ private fun CallableDescriptor.isPlatformStaticIn(predicate: (DeclarationDescrip
|
||||
}
|
||||
|
||||
fun AnnotationDescriptor.argumentValue(parameterName: String): Any? {
|
||||
return allValueArguments.entries
|
||||
val constant: ConstantValue<*>? = allValueArguments.entries
|
||||
.singleOrNull { it.key.name.asString() == parameterName }
|
||||
?.value?.value
|
||||
?.value
|
||||
|
||||
if (constant == null || constant is ErrorValue)
|
||||
return null
|
||||
|
||||
return constant.value
|
||||
}
|
||||
Reference in New Issue
Block a user