Don't fail on unsupported default values of java annotations

This commit is contained in:
Dmitriy Novozhilov
2021-03-04 15:09:12 +03:00
parent 745aa620d0
commit 1f6ce874a1
2 changed files with 6 additions and 2 deletions
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
abstract class JavaAnnotationArgumentImpl( sealed class JavaAnnotationArgumentImpl(
override val name: Name? override val name: Name?
) : JavaAnnotationArgument { ) : JavaAnnotationArgument {
companion object Factory { companion object Factory {
@@ -44,7 +44,7 @@ abstract class JavaAnnotationArgumentImpl(
is PsiReferenceExpression -> JavaEnumValueAnnotationArgumentImpl(argument, name) is PsiReferenceExpression -> JavaEnumValueAnnotationArgumentImpl(argument, name)
is PsiArrayInitializerMemberValue -> JavaArrayAnnotationArgumentImpl(argument, name) is PsiArrayInitializerMemberValue -> JavaArrayAnnotationArgumentImpl(argument, name)
is PsiAnnotation -> JavaAnnotationAsAnnotationArgumentImpl(argument, name) is PsiAnnotation -> JavaAnnotationAsAnnotationArgumentImpl(argument, name)
else -> throw UnsupportedOperationException("Unsupported annotation argument type: $argument") else -> JavaUnknownAnnotationArgumentImpl(name)
} }
} }
} }
@@ -95,3 +95,5 @@ class JavaAnnotationAsAnnotationArgumentImpl(
) : JavaAnnotationArgumentImpl(name), JavaAnnotationAsAnnotationArgument { ) : JavaAnnotationArgumentImpl(name), JavaAnnotationAsAnnotationArgument {
override fun getAnnotation() = JavaAnnotationImpl(psiAnnotation) override fun getAnnotation() = JavaAnnotationImpl(psiAnnotation)
} }
class JavaUnknownAnnotationArgumentImpl(name: Name?) : JavaAnnotationArgumentImpl(name), JavaUnknownAnnotationArgument
@@ -43,3 +43,5 @@ interface JavaClassObjectAnnotationArgument : JavaAnnotationArgument {
interface JavaAnnotationAsAnnotationArgument : JavaAnnotationArgument { interface JavaAnnotationAsAnnotationArgument : JavaAnnotationArgument {
fun getAnnotation(): JavaAnnotation fun getAnnotation(): JavaAnnotation
} }
interface JavaUnknownAnnotationArgument : JavaAnnotationArgument