From 5db7957230893c2562d31c2043893e353a8c0a4a Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Tue, 4 Aug 2020 00:47:19 -0700 Subject: [PATCH] FIR2IR: use type arguments from fully expanded type --- .../org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt | 3 ++- compiler/testData/codegen/box/typealias/simple.kt | 1 - .../delegatingConstructorCallToTypeAliasConstructor.fir.txt | 4 ++-- .../ir/irText/regressions/integerCoercionToT.fir.txt | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt index cd81804ba45..91e74a7b3de 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.types.* @@ -86,7 +87,7 @@ class Fir2IrTypeConverter( } IrSimpleTypeImpl( irSymbol, !typeContext.definitelyNotNull && this.isMarkedNullable, - typeArguments.map { it.toIrTypeArgument() }, + fullyExpandedType(session).typeArguments.map { it.toIrTypeArgument() }, with(annotationGenerator) { annotations.toIrAnnotations() } ) } diff --git a/compiler/testData/codegen/box/typealias/simple.kt b/compiler/testData/codegen/box/typealias/simple.kt index 3f78d42d61c..a5cd67b9ad7 100644 --- a/compiler/testData/codegen/box/typealias/simple.kt +++ b/compiler/testData/codegen/box/typealias/simple.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR typealias S = String typealias SF = (T) -> S diff --git a/compiler/testData/ir/irText/classes/delegatingConstructorCallToTypeAliasConstructor.fir.txt b/compiler/testData/ir/irText/classes/delegatingConstructorCallToTypeAliasConstructor.fir.txt index 02f7367f981..a7a00fa27f3 100644 --- a/compiler/testData/ir/irText/classes/delegatingConstructorCallToTypeAliasConstructor.fir.txt +++ b/compiler/testData/ir/irText/classes/delegatingConstructorCallToTypeAliasConstructor.fir.txt @@ -61,14 +61,14 @@ FILE fqName: fileName:/delegatingConstructorCallToTypeAliasConstructor.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[.Cell] + CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[.Cell] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.C2 CONSTRUCTOR visibility:public <> () returnType:.C2 [primary] BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor (value: T of .Cell) [primary] declared in .Cell' : kotlin.String value: CONST String type=kotlin.String value="K" - INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[.Cell]' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[.Cell]' PROPERTY FAKE_OVERRIDE name:value visibility:public modality:FINAL [fake_override,val] FUN FAKE_OVERRIDE name: visibility:public modality:FINAL <> ($this:.Cell.Cell>) returnType:kotlin.String [fake_override] correspondingProperty: PROPERTY FAKE_OVERRIDE name:value visibility:public modality:FINAL [fake_override,val] diff --git a/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt b/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt index df80b80a788..23c3febedca 100644 --- a/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt +++ b/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt @@ -86,12 +86,12 @@ FILE fqName: fileName:/integerCoercionToT.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:foo visibility:public modality:FINAL <> (value:.IdType, cv:.CInt32VarX) returnType:kotlin.Unit + FUN name:foo visibility:public modality:FINAL <> (value:.IdType, cv:.CInt32VarX) returnType:kotlin.Unit VALUE_PARAMETER name:value index:0 type:.IdType - VALUE_PARAMETER name:cv index:1 type:.CInt32VarX + VALUE_PARAMETER name:cv index:1 type:.CInt32VarX BLOCK_BODY CALL 'public final fun (value: T_INT of .): kotlin.Unit declared in ' type=kotlin.Unit origin=EQ : kotlin.Int - $receiver: GET_VAR 'cv: .CInt32VarX declared in .foo' type=.CInt32VarX origin=null + $receiver: GET_VAR 'cv: .CInt32VarX declared in .foo' type=.CInt32VarX origin=null value: CALL 'public final fun (): kotlin.Int declared in .IdType' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR 'value: .IdType declared in .foo' type=.IdType origin=null