[FIR] Rename FirArrayOfCall to FirArrayLiteral
This commit is contained in:
committed by
Space Team
parent
f4e4c5e724
commit
2eba7da5eb
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user