[FIR] Rename FirArrayOfCall to FirArrayLiteral

This commit is contained in:
Ivan Kochurkin
2023-07-21 20:10:15 +02:00
committed by Space Team
parent f4e4c5e724
commit 2eba7da5eb
49 changed files with 165 additions and 178 deletions
@@ -10,11 +10,10 @@ import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
import org.jetbrains.kotlin.fir.expressions.FirArrayLiteral
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList
import org.jetbrains.kotlin.fir.expressions.builder.buildArrayOfCall
import org.jetbrains.kotlin.fir.expressions.builder.buildArrayLiteral
import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression
import org.jetbrains.kotlin.fir.expressions.builder.buildErrorExpression
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.expectedConeType
@@ -90,14 +89,14 @@ internal fun Any?.createConstantIfAny(session: FirSession, unsigned: Boolean = f
is String -> buildConstExpression(
null, ConstantValueKind.String, this, setType = true
)
is ByteArray -> toList().createArrayOfCall(session, ConstantValueKind.Byte)
is ShortArray -> toList().createArrayOfCall(session, ConstantValueKind.Short)
is IntArray -> toList().createArrayOfCall(session, ConstantValueKind.Int)
is LongArray -> toList().createArrayOfCall(session, ConstantValueKind.Long)
is CharArray -> toList().createArrayOfCall(session, ConstantValueKind.Char)
is FloatArray -> toList().createArrayOfCall(session, ConstantValueKind.Float)
is DoubleArray -> toList().createArrayOfCall(session, ConstantValueKind.Double)
is BooleanArray -> toList().createArrayOfCall(session, ConstantValueKind.Boolean)
is ByteArray -> toList().createArrayLiteral(session, ConstantValueKind.Byte)
is ShortArray -> toList().createArrayLiteral(session, ConstantValueKind.Short)
is IntArray -> toList().createArrayLiteral(session, ConstantValueKind.Int)
is LongArray -> toList().createArrayLiteral(session, ConstantValueKind.Long)
is CharArray -> toList().createArrayLiteral(session, ConstantValueKind.Char)
is FloatArray -> toList().createArrayLiteral(session, ConstantValueKind.Float)
is DoubleArray -> toList().createArrayLiteral(session, ConstantValueKind.Double)
is BooleanArray -> toList().createArrayLiteral(session, ConstantValueKind.Boolean)
null -> buildConstExpression(
null, ConstantValueKind.Null, null, setType = true
)
@@ -106,10 +105,10 @@ internal fun Any?.createConstantIfAny(session: FirSession, unsigned: Boolean = f
}
}
private fun <T> List<T>.createArrayOfCall(session: FirSession, kind: ConstantValueKind<T>): FirArrayOfCall {
return buildArrayOfCall {
private fun <T> List<T>.createArrayLiteral(session: FirSession, kind: ConstantValueKind<T>): FirArrayLiteral {
return buildArrayLiteral {
argumentList = buildArgumentList {
for (element in this@createArrayOfCall) {
for (element in this@createArrayLiteral) {
arguments += element.createConstantOrError(session)
}
}
@@ -94,7 +94,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
}
override fun visitEnd() {
visitExpression(name, buildArrayOfCall {
visitExpression(name, buildArrayLiteral {
guessArrayTypeIfNeeded(name, elements)?.let {
typeRef = it
} ?: elements.firstOrNull()?.typeRef?.coneType?.createOutArrayType()?.let {
@@ -48,7 +48,7 @@ class FirAnnotationTypeQualifierResolver(
private fun FirExpression.toEnumNames(): List<String> =
when (this) {
is FirArrayOfCall -> arguments.flatMap { it.toEnumNames() }
is FirArrayLiteral -> arguments.flatMap { it.toEnumNames() }
is FirVarargArgumentsExpression -> arguments.flatMap { it.toEnumNames() }
else -> {
val name = when (val reference = toReference()) {
@@ -15,11 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirAnnotationArgumentMapping
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression
import org.jetbrains.kotlin.fir.expressions.buildUnaryArgumentList
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.builder.*
import org.jetbrains.kotlin.fir.java.declarations.buildJavaValueParameter
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
@@ -89,7 +85,7 @@ internal fun JavaAnnotationArgument.toFirExpression(
): FirExpression {
return when (this) {
is JavaLiteralAnnotationArgument -> value.createConstantOrError(session)
is JavaArrayAnnotationArgument -> buildArrayOfCall {
is JavaArrayAnnotationArgument -> buildArrayLiteral {
val argumentTypeRef = expectedTypeRef?.let {
typeRef = if (it is FirJavaTypeRef) buildResolvedTypeRef {
type = it.toConeKotlinTypeProbablyFlexible(session, javaTypeParameterStack)