FIR2IR: Prettify some parts at Fir2IrTypeConverter.kt
This commit is contained in:
committed by
TeamCityServer
parent
9d9f191f51
commit
9230195317
@@ -31,36 +31,40 @@ class Fir2IrTypeConverter(
|
||||
private val components: Fir2IrComponents
|
||||
) : Fir2IrComponents by components {
|
||||
|
||||
internal val classIdToSymbolMap by lazy { mapOf(
|
||||
StandardClassIds.Nothing to irBuiltIns.nothingClass,
|
||||
StandardClassIds.Unit to irBuiltIns.unitClass,
|
||||
StandardClassIds.Boolean to irBuiltIns.booleanClass,
|
||||
StandardClassIds.String to irBuiltIns.stringClass,
|
||||
StandardClassIds.Any to irBuiltIns.anyClass,
|
||||
StandardClassIds.Long to irBuiltIns.longClass,
|
||||
StandardClassIds.Int to irBuiltIns.intClass,
|
||||
StandardClassIds.Short to irBuiltIns.shortClass,
|
||||
StandardClassIds.Byte to irBuiltIns.byteClass,
|
||||
StandardClassIds.Float to irBuiltIns.floatClass,
|
||||
StandardClassIds.Double to irBuiltIns.doubleClass,
|
||||
StandardClassIds.Char to irBuiltIns.charClass,
|
||||
StandardClassIds.Array to irBuiltIns.arrayClass
|
||||
)}
|
||||
internal val classIdToSymbolMap by lazy {
|
||||
mapOf(
|
||||
StandardClassIds.Nothing to irBuiltIns.nothingClass,
|
||||
StandardClassIds.Unit to irBuiltIns.unitClass,
|
||||
StandardClassIds.Boolean to irBuiltIns.booleanClass,
|
||||
StandardClassIds.String to irBuiltIns.stringClass,
|
||||
StandardClassIds.Any to irBuiltIns.anyClass,
|
||||
StandardClassIds.Long to irBuiltIns.longClass,
|
||||
StandardClassIds.Int to irBuiltIns.intClass,
|
||||
StandardClassIds.Short to irBuiltIns.shortClass,
|
||||
StandardClassIds.Byte to irBuiltIns.byteClass,
|
||||
StandardClassIds.Float to irBuiltIns.floatClass,
|
||||
StandardClassIds.Double to irBuiltIns.doubleClass,
|
||||
StandardClassIds.Char to irBuiltIns.charClass,
|
||||
StandardClassIds.Array to irBuiltIns.arrayClass
|
||||
)
|
||||
}
|
||||
|
||||
internal val classIdToTypeMap by lazy { mapOf(
|
||||
StandardClassIds.Nothing to irBuiltIns.nothingType,
|
||||
StandardClassIds.Unit to irBuiltIns.unitType,
|
||||
StandardClassIds.Boolean to irBuiltIns.booleanType,
|
||||
StandardClassIds.String to irBuiltIns.stringType,
|
||||
StandardClassIds.Any to irBuiltIns.anyType,
|
||||
StandardClassIds.Long to irBuiltIns.longType,
|
||||
StandardClassIds.Int to irBuiltIns.intType,
|
||||
StandardClassIds.Short to irBuiltIns.shortType,
|
||||
StandardClassIds.Byte to irBuiltIns.byteType,
|
||||
StandardClassIds.Float to irBuiltIns.floatType,
|
||||
StandardClassIds.Double to irBuiltIns.doubleType,
|
||||
StandardClassIds.Char to irBuiltIns.charType
|
||||
)}
|
||||
internal val classIdToTypeMap by lazy {
|
||||
mapOf(
|
||||
StandardClassIds.Nothing to irBuiltIns.nothingType,
|
||||
StandardClassIds.Unit to irBuiltIns.unitType,
|
||||
StandardClassIds.Boolean to irBuiltIns.booleanType,
|
||||
StandardClassIds.String to irBuiltIns.stringType,
|
||||
StandardClassIds.Any to irBuiltIns.anyType,
|
||||
StandardClassIds.Long to irBuiltIns.longType,
|
||||
StandardClassIds.Int to irBuiltIns.intType,
|
||||
StandardClassIds.Short to irBuiltIns.shortType,
|
||||
StandardClassIds.Byte to irBuiltIns.byteType,
|
||||
StandardClassIds.Float to irBuiltIns.floatType,
|
||||
StandardClassIds.Double to irBuiltIns.doubleType,
|
||||
StandardClassIds.Char to irBuiltIns.charType
|
||||
)
|
||||
}
|
||||
|
||||
private val capturedTypeCache = mutableMapOf<ConeCapturedType, IrType>()
|
||||
private val errorTypeForCapturedTypeStub by lazy { createErrorType() }
|
||||
@@ -102,20 +106,27 @@ class Fir2IrTypeConverter(
|
||||
is ConeLookupTagBasedType -> {
|
||||
val typeAnnotations = mutableListOf<IrConstructorCall>()
|
||||
typeAnnotations += with(annotationGenerator) { annotations.toIrAnnotations() }
|
||||
val irSymbol = getBuiltInClassSymbol(classId)
|
||||
?: lookupTag.toSymbol(session)?.toSymbol(session, classifierStorage, typeContext) {
|
||||
typeAnnotations += with(annotationGenerator) { it.toIrAnnotations() }
|
||||
|
||||
val irSymbol =
|
||||
getBuiltInClassSymbol(classId)
|
||||
?: lookupTag.toSymbol(session)?.toSymbol(session, classifierStorage, typeContext) {
|
||||
typeAnnotations += with(annotationGenerator) { it.toIrAnnotations() }
|
||||
}
|
||||
?: return createErrorType()
|
||||
|
||||
when {
|
||||
hasEnhancedNullability -> {
|
||||
builtIns.enhancedNullabilityAnnotationConstructorCall()?.let {
|
||||
typeAnnotations += it
|
||||
}
|
||||
}
|
||||
?: return createErrorType()
|
||||
if (hasEnhancedNullability) {
|
||||
builtIns.enhancedNullabilityAnnotationConstructorCall()?.let {
|
||||
typeAnnotations += it
|
||||
}
|
||||
} else if (hasFlexibleNullability) {
|
||||
builtIns.flexibleNullabilityAnnotationConstructorCall()?.let {
|
||||
typeAnnotations += it
|
||||
hasFlexibleNullability -> {
|
||||
builtIns.flexibleNullabilityAnnotationConstructorCall()?.let {
|
||||
typeAnnotations += it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (attributeAnnotation in attributes.customAnnotations) {
|
||||
if (annotations.any { it.classId == attributeAnnotation.classId }) continue
|
||||
typeAnnotations += callGenerator.convertToIrConstructorCall(attributeAnnotation) as? IrConstructorCall ?: continue
|
||||
|
||||
Reference in New Issue
Block a user