From 9fea22885e29daf9103d316ba008dd370b61471b Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 11 Jan 2016 17:16:01 +0300 Subject: [PATCH] AnnotationUtil: Do not throw on ErrorValue constant --- .../org/jetbrains/kotlin/resolve/AnnotationUtil.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt index a8237f7de66..45f2289e83d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt @@ -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 } \ No newline at end of file