FIR2IR: use type arguments from fully expanded type
This commit is contained in:
committed by
Mikhail Glukhikh
parent
606dc2f723
commit
5db7957230
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.backend
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator
|
import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
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.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
@@ -86,7 +87,7 @@ class Fir2IrTypeConverter(
|
|||||||
}
|
}
|
||||||
IrSimpleTypeImpl(
|
IrSimpleTypeImpl(
|
||||||
irSymbol, !typeContext.definitelyNotNull && this.isMarkedNullable,
|
irSymbol, !typeContext.definitelyNotNull && this.isMarkedNullable,
|
||||||
typeArguments.map { it.toIrTypeArgument() },
|
fullyExpandedType(session).typeArguments.map { it.toIrTypeArgument() },
|
||||||
with(annotationGenerator) { annotations.toIrAnnotations() }
|
with(annotationGenerator) { annotations.toIrAnnotations() }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
typealias S = String
|
typealias S = String
|
||||||
|
|
||||||
typealias SF<T> = (T) -> S
|
typealias SF<T> = (T) -> S
|
||||||
|
|||||||
Vendored
+2
-2
@@ -61,14 +61,14 @@ FILE fqName:<root> fileName:/delegatingConstructorCallToTypeAliasConstructor.kt
|
|||||||
overridden:
|
overridden:
|
||||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[<root>.Cell]
|
CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[<root>.Cell<kotlin.String>]
|
||||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C2
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C2
|
||||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C2 [primary]
|
CONSTRUCTOR visibility:public <> () returnType:<root>.C2 [primary]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (value: T of <root>.Cell) [primary] declared in <root>.Cell'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (value: T of <root>.Cell) [primary] declared in <root>.Cell'
|
||||||
<T>: kotlin.String
|
<T>: kotlin.String
|
||||||
value: CONST String type=kotlin.String value="K"
|
value: CONST String type=kotlin.String value="K"
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[<root>.Cell]'
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C2 modality:FINAL visibility:public superTypes:[<root>.Cell<kotlin.String>]'
|
||||||
PROPERTY FAKE_OVERRIDE name:value visibility:public modality:FINAL [fake_override,val]
|
PROPERTY FAKE_OVERRIDE name:value visibility:public modality:FINAL [fake_override,val]
|
||||||
FUN FAKE_OVERRIDE name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Cell<T of <root>.Cell>) returnType:kotlin.String [fake_override]
|
FUN FAKE_OVERRIDE name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Cell<T of <root>.Cell>) returnType:kotlin.String [fake_override]
|
||||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:value visibility:public modality:FINAL [fake_override,val]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:value visibility:public modality:FINAL [fake_override,val]
|
||||||
|
|||||||
@@ -86,12 +86,12 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
|
|||||||
overridden:
|
overridden:
|
||||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
FUN name:foo visibility:public modality:FINAL <> (value:<root>.IdType, cv:<root>.CInt32VarX) returnType:kotlin.Unit
|
FUN name:foo visibility:public modality:FINAL <> (value:<root>.IdType, cv:<root>.CInt32VarX<kotlin.Int>) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:value index:0 type:<root>.IdType
|
VALUE_PARAMETER name:value index:0 type:<root>.IdType
|
||||||
VALUE_PARAMETER name:cv index:1 type:<root>.CInt32VarX
|
VALUE_PARAMETER name:cv index:1 type:<root>.CInt32VarX<kotlin.Int>
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
CALL 'public final fun <set-value> <T_INT> (value: T_INT of <root>.<get-value>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
|
CALL 'public final fun <set-value> <T_INT> (value: T_INT of <root>.<get-value>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
|
||||||
<T_INT>: kotlin.Int
|
<T_INT>: kotlin.Int
|
||||||
$receiver: GET_VAR 'cv: <root>.CInt32VarX declared in <root>.foo' type=<root>.CInt32VarX origin=null
|
$receiver: GET_VAR 'cv: <root>.CInt32VarX<kotlin.Int> declared in <root>.foo' type=<root>.CInt32VarX<kotlin.Int> origin=null
|
||||||
value: CALL 'public final fun <get-value> (): kotlin.Int declared in <root>.IdType' type=kotlin.Int origin=GET_PROPERTY
|
value: CALL 'public final fun <get-value> (): kotlin.Int declared in <root>.IdType' type=kotlin.Int origin=GET_PROPERTY
|
||||||
$this: GET_VAR 'value: <root>.IdType declared in <root>.foo' type=<root>.IdType origin=null
|
$this: GET_VAR 'value: <root>.IdType declared in <root>.foo' type=<root>.IdType origin=null
|
||||||
|
|||||||
Reference in New Issue
Block a user