[K2] Properly serialize annotation that has vararg with single argument
#KT-60163 Fixed
This commit is contained in:
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.constant.EvaluatedConstTracker
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression
|
||||
import org.jetbrains.kotlin.fir.packageFqName
|
||||
import org.jetbrains.kotlin.fir.serialization.constant.ConstValueProvider
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
@@ -25,6 +26,10 @@ class ConstValueProviderImpl(
|
||||
val firFile = processingFirFile
|
||||
if (firExpression == null || firFile == null) return null
|
||||
|
||||
// We can't evaluate vararg expression, only its arguments. We can accidentally find a const result for vararg
|
||||
// when there is only one argument, they both are going to have the same offset.
|
||||
if (firExpression is FirVarargArgumentsExpression) return null
|
||||
|
||||
val fileName = firFile.packageFqName.child(Name.identifier(firFile.name)).asString()
|
||||
return if (firExpression is FirQualifiedAccessExpression) {
|
||||
// TODO check that this behavior is expected in ConversionUtils and if not fix it
|
||||
|
||||
Reference in New Issue
Block a user