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 4573c64a089..cd81804ba45 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 @@ -5,6 +5,8 @@ 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.toSymbol import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.types.* @@ -21,6 +23,8 @@ import org.jetbrains.kotlin.types.Variance class Fir2IrTypeConverter( private val components: Fir2IrComponents ) : Fir2IrComponents by components { + private val annotationGenerator = AnnotationGenerator(this) + internal val classIdToSymbolMap = mapOf( StandardClassIds.Nothing to irBuiltIns.nothingClass, StandardClassIds.Unit to irBuiltIns.unitClass, @@ -55,7 +59,7 @@ class Fir2IrTypeConverter( fun FirTypeRef.toIrType(typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT): IrType { return when (this) { !is FirResolvedTypeRef -> createErrorType() - !is FirImplicitBuiltinTypeRef -> type.toIrType(typeContext) + !is FirImplicitBuiltinTypeRef -> type.toIrType(typeContext, annotations) is FirImplicitNothingTypeRef -> irBuiltIns.nothingType is FirImplicitUnitTypeRef -> irBuiltIns.unitType is FirImplicitBooleanTypeRef -> irBuiltIns.booleanType @@ -64,11 +68,14 @@ class Fir2IrTypeConverter( is FirImplicitIntTypeRef -> irBuiltIns.intType is FirImplicitNullableAnyTypeRef -> irBuiltIns.anyNType is FirImplicitNullableNothingTypeRef -> irBuiltIns.nothingNType - else -> type.toIrType(typeContext) + else -> type.toIrType(typeContext, annotations) } } - fun ConeKotlinType.toIrType(typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT): IrType { + fun ConeKotlinType.toIrType( + typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT, + annotations: List = emptyList() + ): IrType { return when (this) { is ConeKotlinErrorType -> createErrorType() is ConeLookupTagBasedType -> { @@ -77,11 +84,10 @@ class Fir2IrTypeConverter( val firSymbol = this.lookupTag.toSymbol(session) ?: return createErrorType() firSymbol.toSymbol(session, classifierStorage, typeContext) } - // TODO: annotations IrSimpleTypeImpl( irSymbol, !typeContext.definitelyNotNull && this.isMarkedNullable, typeArguments.map { it.toIrTypeArgument() }, - emptyList() + with(annotationGenerator) { annotations.toIrAnnotations() } ) } is ConeFlexibleType -> { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt index 51eb4865885..1d469f6444d 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt @@ -8,9 +8,9 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.backend.Fir2IrComponents -import org.jetbrains.kotlin.fir.backend.Fir2IrVisitor import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirValueParameter +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.util.isPropertyField @@ -26,10 +26,13 @@ import org.jetbrains.kotlin.ir.util.isSetter */ internal class AnnotationGenerator(private val components: Fir2IrComponents) : Fir2IrComponents by components { - fun generate(irContainer: IrMutableAnnotationContainer, firContainer: FirAnnotationContainer) { - irContainer.annotations = firContainer.annotations.mapNotNull { + fun List.toIrAnnotations(): List = + mapNotNull { callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall } + + fun generate(irContainer: IrMutableAnnotationContainer, firContainer: FirAnnotationContainer) { + irContainer.annotations = firContainer.annotations.toIrAnnotations() } fun generate(irValueParameter: IrValueParameter, firValueParameter: FirValueParameter, isInConstructor: Boolean) { @@ -38,9 +41,7 @@ internal class AnnotationGenerator(private val components: Fir2IrComponents) : F .filter { it.useSiteTarget == null || !isInConstructor || it.useSiteTarget == AnnotationUseSiteTarget.CONSTRUCTOR_PARAMETER } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() } fun generate(irProperty: IrProperty, property: FirProperty) { @@ -49,9 +50,7 @@ internal class AnnotationGenerator(private val components: Fir2IrComponents) : F .filter { it.useSiteTarget == null || it.useSiteTarget == AnnotationUseSiteTarget.PROPERTY } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() } fun generate(irField: IrField, property: FirProperty) { @@ -64,9 +63,7 @@ internal class AnnotationGenerator(private val components: Fir2IrComponents) : F it.useSiteTarget == AnnotationUseSiteTarget.FIELD || it.useSiteTarget == AnnotationUseSiteTarget.PROPERTY_DELEGATE_FIELD } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() } fun generate(propertyAccessor: IrFunction, property: FirProperty) { @@ -79,18 +76,14 @@ internal class AnnotationGenerator(private val components: Fir2IrComponents) : F .filter { it.useSiteTarget == AnnotationUseSiteTarget.PROPERTY_SETTER } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() propertyAccessor.valueParameters.singleOrNull()?.annotations = propertyAccessor.valueParameters.singleOrNull()?.annotations?.plus( property.annotations .filter { it.useSiteTarget == AnnotationUseSiteTarget.SETTER_PARAMETER } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() )!! } else { propertyAccessor.annotations += @@ -98,9 +91,7 @@ internal class AnnotationGenerator(private val components: Fir2IrComponents) : F .filter { it.useSiteTarget == AnnotationUseSiteTarget.PROPERTY_GETTER } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() } propertyAccessor.extensionReceiverParameter?.annotations = propertyAccessor.extensionReceiverParameter?.annotations?.plus( @@ -108,9 +99,7 @@ internal class AnnotationGenerator(private val components: Fir2IrComponents) : F .filter { it.useSiteTarget == AnnotationUseSiteTarget.RECEIVER } - .mapNotNull { - callGenerator.convertToIrConstructorCall(it) as? IrConstructorCall - } + .toIrAnnotations() )!! } } diff --git a/compiler/testData/codegen/box/annotations/typeAnnotations/methodParameters.kt b/compiler/testData/codegen/box/annotations/typeAnnotations/methodParameters.kt index c3c1c184061..f7ee4f6423d 100644 --- a/compiler/testData/codegen/box/annotations/typeAnnotations/methodParameters.kt +++ b/compiler/testData/codegen/box/annotations/typeAnnotations/methodParameters.kt @@ -1,6 +1,5 @@ // KOTLIN_CONFIGURATION_FLAGS: +JVM.EMIT_JVM_TYPE_ANNOTATIONS // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND: ANDROID // JVM_TARGET: 1.8 // WITH_REFLECT diff --git a/compiler/testData/codegen/box/assert/jvm/superClassInitializer.kt b/compiler/testData/codegen/box/assert/jvm/superClassInitializer.kt index 07b2ba56118..c15120c2db0 100644 --- a/compiler/testData/codegen/box/assert/jvm/superClassInitializer.kt +++ b/compiler/testData/codegen/box/assert/jvm/superClassInitializer.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/callableReference/bound/emptyLHS.kt b/compiler/testData/codegen/box/callableReference/bound/emptyLHS.kt index 8b14e05c9fd..e83e406c73b 100644 --- a/compiler/testData/codegen/box/callableReference/bound/emptyLHS.kt +++ b/compiler/testData/codegen/box/callableReference/bound/emptyLHS.kt @@ -1,5 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR - var result = "" class A { diff --git a/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutines.kt b/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutines.kt index 9b392d9f368..b7057738b5c 100644 --- a/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutines.kt +++ b/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutines.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME // WITH_COROUTINES diff --git a/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutinesNoStdLib.kt b/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutinesNoStdLib.kt index 8849065ffa1..6d672ff1edc 100644 --- a/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutinesNoStdLib.kt +++ b/compiler/testData/codegen/box/closures/capturedVarsOptimization/withCoroutinesNoStdLib.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // WITH_COROUTINES // COMMON_COROUTINES_TEST diff --git a/compiler/testData/codegen/box/closures/subclosuresWithinInitializers.kt b/compiler/testData/codegen/box/closures/subclosuresWithinInitializers.kt index 938c09d3d96..3f76b76193e 100644 --- a/compiler/testData/codegen/box/closures/subclosuresWithinInitializers.kt +++ b/compiler/testData/codegen/box/closures/subclosuresWithinInitializers.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR fun run(block: () -> R) = block() inline fun inlineRun(block: () -> R) = block() diff --git a/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/bound/emptyLHS.kt b/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/bound/emptyLHS.kt index 787975fd0fc..85ca624f5ae 100644 --- a/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/bound/emptyLHS.kt +++ b/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/bound/emptyLHS.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // WITH_COROUTINES diff --git a/compiler/testData/codegen/box/coroutines/varSpilling/fakeInlinerVariables.kt b/compiler/testData/codegen/box/coroutines/varSpilling/fakeInlinerVariables.kt index 4fd4fdf0eaf..d89c295ab33 100644 --- a/compiler/testData/codegen/box/coroutines/varSpilling/fakeInlinerVariables.kt +++ b/compiler/testData/codegen/box/coroutines/varSpilling/fakeInlinerVariables.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME // WITH_COROUTINES diff --git a/compiler/testData/codegen/box/defaultArguments/kt6382.kt b/compiler/testData/codegen/box/defaultArguments/kt6382.kt index 1aaa9553309..07910e2cf12 100644 --- a/compiler/testData/codegen/box/defaultArguments/kt6382.kt +++ b/compiler/testData/codegen/box/defaultArguments/kt6382.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME fun box(): String { diff --git a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt index 95a6855240d..5de31ce12ff 100644 --- a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt +++ b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // !LANGUAGE: +InlineClasses // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/jvmName/classMembers.kt b/compiler/testData/codegen/box/jvmName/classMembers.kt index b7f25f29318..a6ebda45bd9 100644 --- a/compiler/testData/codegen/box/jvmName/classMembers.kt +++ b/compiler/testData/codegen/box/jvmName/classMembers.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM - // WITH_RUNTIME // See: // http://kotlinlang.org/docs/reference/java-interop.html#handling-signature-clashes-with-platformname diff --git a/compiler/testData/codegen/box/jvmStatic/convention.kt b/compiler/testData/codegen/box/jvmStatic/convention.kt index 37fbab55ef0..2be8c415533 100644 --- a/compiler/testData/codegen/box/jvmStatic/convention.kt +++ b/compiler/testData/codegen/box/jvmStatic/convention.kt @@ -1,6 +1,4 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM - // WITH_RUNTIME class B(var s: Int = 0) { diff --git a/compiler/testData/codegen/box/objects/kt2663_3.kt b/compiler/testData/codegen/box/objects/kt2663_3.kt index 8feda84b325..390deffbd9f 100644 --- a/compiler/testData/codegen/box/objects/kt2663_3.kt +++ b/compiler/testData/codegen/box/objects/kt2663_3.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR fun box() : String { var a = 1 diff --git a/compiler/testData/codegen/box/objects/objectVsClassInitialization_kt5291.kt b/compiler/testData/codegen/box/objects/objectVsClassInitialization_kt5291.kt index 8e404e25bd0..82a84f5745a 100644 --- a/compiler/testData/codegen/box/objects/objectVsClassInitialization_kt5291.kt +++ b/compiler/testData/codegen/box/objects/objectVsClassInitialization_kt5291.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME public inline fun T.with(f: T.() -> Unit): T { this.f() diff --git a/compiler/testData/codegen/box/properties/lateinit/isInitializedAndDeinitialize/sideEffects.kt b/compiler/testData/codegen/box/properties/lateinit/isInitializedAndDeinitialize/sideEffects.kt index f911ccd5c4e..c0717a7ae89 100644 --- a/compiler/testData/codegen/box/properties/lateinit/isInitializedAndDeinitialize/sideEffects.kt +++ b/compiler/testData/codegen/box/properties/lateinit/isInitializedAndDeinitialize/sideEffects.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME class Foo { diff --git a/compiler/testData/codegen/box/ranges/forInStringWithCustomIterator.kt b/compiler/testData/codegen/box/ranges/forInStringWithCustomIterator.kt index f4d903bd6fd..e7853e62294 100644 --- a/compiler/testData/codegen/box/ranges/forInStringWithCustomIterator.kt +++ b/compiler/testData/codegen/box/ranges/forInStringWithCustomIterator.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt b/compiler/testData/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt index 1a6f8c4319d..704f8f5c741 100644 --- a/compiler/testData/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt +++ b/compiler/testData/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/testData/codegen/box/sam/kt24825.kt b/compiler/testData/codegen/box/sam/kt24825.kt index 66c2e6a670c..5f66288d32d 100644 --- a/compiler/testData/codegen/box/sam/kt24825.kt +++ b/compiler/testData/codegen/box/sam/kt24825.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME diff --git a/compiler/testData/ir/irText/classes/initValInLambda.fir.txt b/compiler/testData/ir/irText/classes/initValInLambda.fir.txt index aac71f3e9c9..c6efa0dc7d8 100644 --- a/compiler/testData/ir/irText/classes/initValInLambda.fir.txt +++ b/compiler/testData/ir/irText/classes/initValInLambda.fir.txt @@ -16,7 +16,7 @@ FILE fqName: fileName:/initValInLambda.kt receiver: GET_VAR ': .TestInitValInLambdaCalledOnce declared in .TestInitValInLambdaCalledOnce.' type=.TestInitValInLambdaCalledOnce origin=null ANONYMOUS_INITIALIZER isStatic=false BLOCK_BODY - CALL 'public final fun run (block: kotlin.Function1): R of kotlin.run [inline] declared in kotlin' type=kotlin.Unit origin=null + CALL 'public final fun run (block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.run [inline] declared in kotlin' type=kotlin.Unit origin=null : kotlin.Int : kotlin.Unit $receiver: CONST Int type=kotlin.Int value=1 diff --git a/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.fir.txt b/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.fir.txt index 50075c49f48..921be13b44b 100644 --- a/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.fir.txt +++ b/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.fir.txt @@ -1,8 +1,8 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt CLASS CLASS name:A modality:FINAL visibility:public [data] superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A - CONSTRUCTOR visibility:public <> (runA:kotlin.Function2<.A, kotlin.String, kotlin.Unit>) returnType:.A [primary] - VALUE_PARAMETER name:runA index:0 type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> + CONSTRUCTOR visibility:public <> (runA:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>) returnType:.A [primary] + VALUE_PARAMETER name:runA index:0 type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> EXPRESSION_BODY FUN_EXPR type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:.A, it:kotlin.String) returnType:kotlin.Unit @@ -15,32 +15,32 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public [data] superTypes:[kotlin.Any]' PROPERTY name:runA visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final] + FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final] EXPRESSION_BODY - GET_VAR 'runA: kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A.' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=INITIALIZE_PROPERTY_FROM_PARAMETER - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.A) returnType:kotlin.Function2<.A, kotlin.String, kotlin.Unit> + GET_VAR 'runA: @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A.' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.A) returnType:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> correspondingProperty: PROPERTY name:runA visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.A BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + RETURN type=kotlin.Nothing from='public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR ': .A declared in .A.' type=.A origin=null - FUN name:component1 visibility:public modality:FINAL <> ($this:.A) returnType:kotlin.Function2<.A, kotlin.String, kotlin.Unit> + FUN name:component1 visibility:public modality:FINAL <> ($this:.A) returnType:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> $this: VALUE_PARAMETER name: type:.A BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + RETURN type=kotlin.Nothing from='public final fun component1 (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR ': .A declared in .A.component1' type=.A origin=null - FUN name:copy visibility:public modality:FINAL <> ($this:.A, runA:kotlin.Function2<.A, kotlin.String, kotlin.Unit>) returnType:.A + FUN name:copy visibility:public modality:FINAL <> ($this:.A, runA:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>) returnType:.A $this: VALUE_PARAMETER name: type:.A - VALUE_PARAMETER name:runA index:0 type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> + VALUE_PARAMETER name:runA index:0 type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> EXPRESSION_BODY - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR ': .A declared in .A.copy' type=.A origin=null BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun copy (runA: kotlin.Function2<.A, kotlin.String, kotlin.Unit>): .A declared in .A' - CONSTRUCTOR_CALL 'public constructor (runA: kotlin.Function2<.A, kotlin.String, kotlin.Unit>) [primary] declared in .A' type=.A origin=null - runA: GET_VAR 'runA: kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A.copy' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + RETURN type=kotlin.Nothing from='public final fun copy (runA: @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>): .A declared in .A' + CONSTRUCTOR_CALL 'public constructor (runA: @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>) [primary] declared in .A' type=.A origin=null + runA: GET_VAR 'runA: @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A.copy' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.A, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any @@ -67,9 +67,9 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR ': .A declared in .A.equals' type=.A origin=null - arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR 'val tmp_0: .A [val] declared in .A.equals' type=.A origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .A' CONST Boolean type=kotlin.Boolean value=false @@ -82,7 +82,7 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt BLOCK_BODY RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .A' CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:.A) returnType:kotlin.String overridden: @@ -93,7 +93,7 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="A(" CONST String type=kotlin.String value="runA=" - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null receiver: GET_VAR ': .A declared in .A.toString' type=.A origin=null CONST String type=kotlin.String value=")" CLASS CLASS name:B modality:FINAL visibility:public [data] superTypes:[kotlin.Any] diff --git a/compiler/testData/ir/irText/declarations/annotations/receiverParameterWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/receiverParameterWithAnnotations.fir.txt index cb75b692aee..8dca0ece3a7 100644 --- a/compiler/testData/ir/irText/declarations/annotations/receiverParameterWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/receiverParameterWithAnnotations.fir.txt @@ -21,17 +21,17 @@ FILE fqName: fileName:/receiverParameterWithAnnotations.kt BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' - FUN name:f visibility:public modality:FINAL <> ($this:.A, $receiver:kotlin.String) returnType:kotlin.String + FUN name:f visibility:public modality:FINAL <> ($this:.A, $receiver:@[Ann] kotlin.String) returnType:kotlin.String $this: VALUE_PARAMETER name: type:.A - $receiver: VALUE_PARAMETER name: type:kotlin.String + $receiver: VALUE_PARAMETER name: type:@[Ann] kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun f (): kotlin.String declared in .A' CONST String type=kotlin.String value="" PROPERTY name:p visibility:public modality:FINAL [val] - FUN name: visibility:public modality:FINAL <> ($this:.A, $receiver:kotlin.String?) returnType:kotlin.String + FUN name: visibility:public modality:FINAL <> ($this:.A, $receiver:@[Ann] kotlin.String?) returnType:kotlin.String correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.A - $receiver: VALUE_PARAMETER name: type:kotlin.String? + $receiver: VALUE_PARAMETER name: type:@[Ann] kotlin.String? BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): kotlin.String declared in .A' CONST String type=kotlin.String value="" @@ -48,15 +48,15 @@ FILE fqName: fileName:/receiverParameterWithAnnotations.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:topLevelF visibility:public modality:FINAL <> ($receiver:kotlin.String?) returnType:kotlin.String - $receiver: VALUE_PARAMETER name: type:kotlin.String? + FUN name:topLevelF visibility:public modality:FINAL <> ($receiver:@[Ann] kotlin.String?) returnType:kotlin.String + $receiver: VALUE_PARAMETER name: type:@[Ann] kotlin.String? BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun topLevelF (): kotlin.String declared in ' CONST String type=kotlin.String value="" PROPERTY name:topLevelP visibility:public modality:FINAL [val] - FUN name: visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.String + FUN name: visibility:public modality:FINAL <> ($receiver:@[Ann] kotlin.String) returnType:kotlin.String correspondingProperty: PROPERTY name:topLevelP visibility:public modality:FINAL [val] - $receiver: VALUE_PARAMETER name: type:kotlin.String + $receiver: VALUE_PARAMETER name: type:@[Ann] kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): kotlin.String declared in ' CONST String type=kotlin.String value="" diff --git a/compiler/testData/ir/irText/declarations/parameters/lambdas.fir.txt b/compiler/testData/ir/irText/declarations/parameters/lambdas.fir.txt index 45c592a14f5..f8322c87f07 100644 --- a/compiler/testData/ir/irText/declarations/parameters/lambdas.fir.txt +++ b/compiler/testData/ir/irText/declarations/parameters/lambdas.fir.txt @@ -14,7 +14,7 @@ FILE fqName: fileName:/lambdas.kt RETURN type=kotlin.Nothing from='public final fun (): kotlin.Function1 declared in ' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Function1 visibility:private [final,static]' type=kotlin.Function1 origin=null PROPERTY name:test2 visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Function2 visibility:private [final,static] + FIELD PROPERTY_BACKING_FIELD name:test2 type:@[ExtensionFunctionType] kotlin.Function2 visibility:private [final,static] EXPRESSION_BODY FUN_EXPR type=kotlin.Function2 origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:kotlin.Any, it:kotlin.Any) returnType:kotlin.Int @@ -24,11 +24,11 @@ FILE fqName: fileName:/lambdas.kt RETURN type=kotlin.Nothing from='local final fun (it: kotlin.Any): kotlin.Int declared in .test2' CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null $this: GET_VAR 'it: kotlin.Any declared in .test2.' type=kotlin.Any origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:kotlin.Function2 + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:@[ExtensionFunctionType] kotlin.Function2 correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val] BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): kotlin.Function2 declared in ' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Function2 visibility:private [final,static]' type=kotlin.Function2 origin=null + RETURN type=kotlin.Nothing from='public final fun (): @[ExtensionFunctionType] kotlin.Function2 declared in ' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:@[ExtensionFunctionType] kotlin.Function2 visibility:private [final,static]' type=@[ExtensionFunctionType] kotlin.Function2 origin=null PROPERTY name:test3 visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Function2 visibility:private [final,static] EXPRESSION_BODY diff --git a/compiler/testData/ir/irText/expressions/callableReferences/adaptedExtensionFunctions.fir.txt b/compiler/testData/ir/irText/expressions/callableReferences/adaptedExtensionFunctions.fir.txt index 25d639ce264..7cacf363154 100644 --- a/compiler/testData/ir/irText/expressions/callableReferences/adaptedExtensionFunctions.fir.txt +++ b/compiler/testData/ir/irText/expressions/callableReferences/adaptedExtensionFunctions.fir.txt @@ -1,6 +1,6 @@ FILE fqName: fileName:/adaptedExtensionFunctions.kt - FUN name:use visibility:public modality:FINAL <> (f:kotlin.Function2<.C, kotlin.Int, kotlin.Unit>) returnType:kotlin.Unit - VALUE_PARAMETER name:f index:0 type:kotlin.Function2<.C, kotlin.Int, kotlin.Unit> + FUN name:use visibility:public modality:FINAL <> (f:@[ExtensionFunctionType] kotlin.Function2<.C, kotlin.Int, kotlin.Unit>) returnType:kotlin.Unit + VALUE_PARAMETER name:f index:0 type:@[ExtensionFunctionType] kotlin.Function2<.C, kotlin.Int, kotlin.Unit> BLOCK_BODY CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.C @@ -43,13 +43,13 @@ FILE fqName: fileName:/adaptedExtensionFunctions.kt BLOCK_BODY FUN name:testExtensionVararg visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - CALL 'public final fun use (f: kotlin.Function2<.C, kotlin.Int, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null + CALL 'public final fun use (f: @[ExtensionFunctionType] kotlin.Function2<.C, kotlin.Int, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null f: FUNCTION_REFERENCE 'public final fun extensionVararg (i: kotlin.Int, vararg s: kotlin.String): kotlin.Unit declared in ' type=kotlin.reflect.KFunction2<.C, kotlin.Int, kotlin.Unit> origin=null reflectionTarget= FUN name:testExtensionDefault visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - CALL 'public final fun use (f: kotlin.Function2<.C, kotlin.Int, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null + CALL 'public final fun use (f: @[ExtensionFunctionType] kotlin.Function2<.C, kotlin.Int, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null f: FUNCTION_REFERENCE 'public final fun extensionDefault (i: kotlin.Int, s: kotlin.String): kotlin.Unit declared in ' type=kotlin.reflect.KFunction2<.C, kotlin.Int, kotlin.Unit> origin=null reflectionTarget= FUN name:testExtensionBoth visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - CALL 'public final fun use (f: kotlin.Function2<.C, kotlin.Int, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null + CALL 'public final fun use (f: @[ExtensionFunctionType] kotlin.Function2<.C, kotlin.Int, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null f: FUNCTION_REFERENCE 'public final fun extensionBoth (i: kotlin.Int, s: kotlin.String, vararg t: kotlin.String): kotlin.Unit declared in ' type=kotlin.reflect.KFunction2<.C, kotlin.Int, kotlin.Unit> origin=null reflectionTarget= diff --git a/compiler/testData/ir/irText/expressions/extFunInvokeAsFun.fir.txt b/compiler/testData/ir/irText/expressions/extFunInvokeAsFun.fir.txt index 8460502274a..2b8f83dda29 100644 --- a/compiler/testData/ir/irText/expressions/extFunInvokeAsFun.fir.txt +++ b/compiler/testData/ir/irText/expressions/extFunInvokeAsFun.fir.txt @@ -1,17 +1,17 @@ FILE fqName: fileName:/extFunInvokeAsFun.kt - FUN name:with1 visibility:public modality:FINAL <> (receiver:kotlin.Any?, block:kotlin.Function1) returnType:kotlin.Unit + FUN name:with1 visibility:public modality:FINAL <> (receiver:kotlin.Any?, block:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit VALUE_PARAMETER name:receiver index:0 type:kotlin.Any? - VALUE_PARAMETER name:block index:1 type:kotlin.Function1 + VALUE_PARAMETER name:block index:1 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun with1 (receiver: kotlin.Any?, block: kotlin.Function1): kotlin.Unit declared in ' + RETURN type=kotlin.Nothing from='public final fun with1 (receiver: kotlin.Any?, block: @[ExtensionFunctionType] kotlin.Function1): kotlin.Unit declared in ' CALL 'public abstract fun invoke (p1: P1 of kotlin.Function1): R of kotlin.Function1 [operator] declared in kotlin.Function1' type=kotlin.Unit origin=INVOKE - $this: GET_VAR 'block: kotlin.Function1 declared in .with1' type=kotlin.Function1 origin=null + $this: GET_VAR 'block: @[ExtensionFunctionType] kotlin.Function1 declared in .with1' type=@[ExtensionFunctionType] kotlin.Function1 origin=null p1: GET_VAR 'receiver: kotlin.Any? declared in .with1' type=kotlin.Any? origin=null - FUN name:with2 visibility:public modality:FINAL <> (receiver:kotlin.Any?, block:kotlin.Function1) returnType:kotlin.Unit + FUN name:with2 visibility:public modality:FINAL <> (receiver:kotlin.Any?, block:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit VALUE_PARAMETER name:receiver index:0 type:kotlin.Any? - VALUE_PARAMETER name:block index:1 type:kotlin.Function1 + VALUE_PARAMETER name:block index:1 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun with2 (receiver: kotlin.Any?, block: kotlin.Function1): kotlin.Unit declared in ' + RETURN type=kotlin.Nothing from='public final fun with2 (receiver: kotlin.Any?, block: @[ExtensionFunctionType] kotlin.Function1): kotlin.Unit declared in ' CALL 'public abstract fun invoke (p1: P1 of kotlin.Function1): R of kotlin.Function1 [operator] declared in kotlin.Function1' type=kotlin.Unit origin=INVOKE - $this: GET_VAR 'block: kotlin.Function1 declared in .with2' type=kotlin.Function1 origin=null + $this: GET_VAR 'block: @[ExtensionFunctionType] kotlin.Function1 declared in .with2' type=@[ExtensionFunctionType] kotlin.Function1 origin=null p1: GET_VAR 'receiver: kotlin.Any? declared in .with2' type=kotlin.Any? origin=null diff --git a/compiler/testData/ir/irText/expressions/extFunSafeInvoke.fir.txt b/compiler/testData/ir/irText/expressions/extFunSafeInvoke.fir.txt index 086d3ff53a5..b45e3100e59 100644 --- a/compiler/testData/ir/irText/expressions/extFunSafeInvoke.fir.txt +++ b/compiler/testData/ir/irText/expressions/extFunSafeInvoke.fir.txt @@ -1,9 +1,9 @@ FILE fqName: fileName:/extFunSafeInvoke.kt - FUN name:test visibility:public modality:FINAL <> (receiver:kotlin.Any?, fn:kotlin.Function3) returnType:kotlin.Unit? + FUN name:test visibility:public modality:FINAL <> (receiver:kotlin.Any?, fn:@[ExtensionFunctionType] kotlin.Function3) returnType:kotlin.Unit? VALUE_PARAMETER name:receiver index:0 type:kotlin.Any? - VALUE_PARAMETER name:fn index:1 type:kotlin.Function3 + VALUE_PARAMETER name:fn index:1 type:@[ExtensionFunctionType] kotlin.Function3 BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test (receiver: kotlin.Any?, fn: kotlin.Function3): kotlin.Unit? declared in ' + RETURN type=kotlin.Nothing from='public final fun test (receiver: kotlin.Any?, fn: @[ExtensionFunctionType] kotlin.Function3): kotlin.Unit? declared in ' BLOCK type=kotlin.Unit? origin=SAFE_CALL VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Any? [val] GET_VAR 'receiver: kotlin.Any? declared in .test' type=kotlin.Any? origin=null @@ -16,7 +16,7 @@ FILE fqName: fileName:/extFunSafeInvoke.kt BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'public abstract fun invoke (p1: P1 of kotlin.Function3, p2: P2 of kotlin.Function3, p3: P3 of kotlin.Function3): R of kotlin.Function3 [operator] declared in kotlin.Function3' type=kotlin.Unit origin=INVOKE - $this: GET_VAR 'fn: kotlin.Function3 declared in .test' type=kotlin.Function3 origin=null + $this: GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function3 declared in .test' type=@[ExtensionFunctionType] kotlin.Function3 origin=null p1: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in .test' type=kotlin.Any? origin=null p2: CONST Int type=kotlin.Int value=42 p3: CONST String type=kotlin.String value="Hello" diff --git a/compiler/testData/ir/irText/expressions/kt37570.fir.txt b/compiler/testData/ir/irText/expressions/kt37570.fir.txt index 9bec8833791..26cd213af61 100644 --- a/compiler/testData/ir/irText/expressions/kt37570.fir.txt +++ b/compiler/testData/ir/irText/expressions/kt37570.fir.txt @@ -20,7 +20,7 @@ FILE fqName: fileName:/kt37570.kt receiver: GET_VAR ': .A declared in .A.' type=.A origin=null ANONYMOUS_INITIALIZER isStatic=false BLOCK_BODY - CALL 'public final fun apply (block: kotlin.Function1): T of kotlin.apply [inline] declared in kotlin' type=kotlin.String origin=null + CALL 'public final fun apply (block: @[ExtensionFunctionType] kotlin.Function1): T of kotlin.apply [inline] declared in kotlin' type=kotlin.String origin=null : kotlin.String $receiver: CALL 'public final fun a (): kotlin.String declared in ' type=kotlin.String origin=null block: FUN_EXPR type=kotlin.Function1 origin=LAMBDA diff --git a/compiler/testData/ir/irText/expressions/sam/samConversionToGeneric.fir.txt b/compiler/testData/ir/irText/expressions/sam/samConversionToGeneric.fir.txt index 4553cf11aa7..2f757320516 100644 --- a/compiler/testData/ir/irText/expressions/sam/samConversionToGeneric.fir.txt +++ b/compiler/testData/ir/irText/expressions/sam/samConversionToGeneric.fir.txt @@ -69,19 +69,19 @@ FILE fqName: fileName:/samConversionToGeneric.kt j: TYPE_OP type=.J.H.bar?>? origin=SAM_CONVERSION typeOperand=.J.H.bar?>? TYPE_OP type=kotlin.Function1.test7, T of .test7> origin=IMPLICIT_CAST typeOperand=kotlin.Function1.test7, T of .test7> GET_VAR 'a: kotlin.Any declared in .test7' type=kotlin.Any origin=null - FUN name:test8 visibility:public modality:FINAL <> (efn:kotlin.Function1) returnType:.J - VALUE_PARAMETER name:efn index:0 type:kotlin.Function1 + FUN name:test8 visibility:public modality:FINAL <> (efn:@[ExtensionFunctionType] kotlin.Function1) returnType:.J + VALUE_PARAMETER name:efn index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test8 (efn: kotlin.Function1): .J declared in ' + RETURN type=kotlin.Nothing from='public final fun test8 (efn: @[ExtensionFunctionType] kotlin.Function1): .J declared in ' TYPE_OP type=.J origin=SAM_CONVERSION typeOperand=.J - GET_VAR 'efn: kotlin.Function1 declared in .test8' type=kotlin.Function1 origin=null - FUN name:test9 visibility:public modality:FINAL <> (efn:kotlin.Function1) returnType:kotlin.Unit - VALUE_PARAMETER name:efn index:0 type:kotlin.Function1 + GET_VAR 'efn: @[ExtensionFunctionType] kotlin.Function1 declared in .test8' type=@[ExtensionFunctionType] kotlin.Function1 origin=null + FUN name:test9 visibility:public modality:FINAL <> (efn:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit + VALUE_PARAMETER name:efn index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY CALL 'public open fun bar (j: .J.H.bar?>?): kotlin.Unit declared in .H' type=kotlin.Unit origin=null : kotlin.String? j: TYPE_OP type=.J.H.bar?>? origin=SAM_CONVERSION typeOperand=.J.H.bar?>? - GET_VAR 'efn: kotlin.Function1 declared in .test9' type=kotlin.Function1 origin=null + GET_VAR 'efn: @[ExtensionFunctionType] kotlin.Function1 declared in .test9' type=@[ExtensionFunctionType] kotlin.Function1 origin=null FUN name:test10 visibility:public modality:FINAL <> (fn:kotlin.Function1) returnType:kotlin.Unit VALUE_PARAMETER name:fn index:0 type:kotlin.Function1 BLOCK_BODY diff --git a/compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.fir.txt b/compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.fir.txt index 8defa1e18cc..56472a22a6d 100644 --- a/compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.fir.txt +++ b/compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.fir.txt @@ -2,8 +2,8 @@ FILE fqName: fileName:/suspendConversionOnArbitraryExpression.kt FUN name:useSuspend visibility:public modality:FINAL <> (sfn:kotlin.coroutines.SuspendFunction0) returnType:kotlin.Unit VALUE_PARAMETER name:sfn index:0 type:kotlin.coroutines.SuspendFunction0 BLOCK_BODY - FUN name:useSuspendExt visibility:public modality:FINAL <> (sfn:kotlin.coroutines.SuspendFunction1) returnType:kotlin.Unit - VALUE_PARAMETER name:sfn index:0 type:kotlin.coroutines.SuspendFunction1 + FUN name:useSuspendExt visibility:public modality:FINAL <> (sfn:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1) returnType:kotlin.Unit + VALUE_PARAMETER name:sfn index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1 BLOCK_BODY FUN name:useSuspendArg visibility:public modality:FINAL <> (sfn:kotlin.coroutines.SuspendFunction1) returnType:kotlin.Unit VALUE_PARAMETER name:sfn index:0 type:kotlin.coroutines.SuspendFunction1 @@ -12,9 +12,9 @@ FILE fqName: fileName:/suspendConversionOnArbitraryExpression.kt TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] VALUE_PARAMETER name:sfn index:0 type:kotlin.coroutines.SuspendFunction1.useSuspendArgT, kotlin.Unit> BLOCK_BODY - FUN name:useSuspendExtT visibility:public modality:FINAL (sfn:kotlin.coroutines.SuspendFunction1.useSuspendExtT, kotlin.Unit>) returnType:kotlin.Unit + FUN name:useSuspendExtT visibility:public modality:FINAL (sfn:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1.useSuspendExtT, kotlin.Unit>) returnType:kotlin.Unit TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:sfn index:0 type:kotlin.coroutines.SuspendFunction1.useSuspendExtT, kotlin.Unit> + VALUE_PARAMETER name:sfn index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1.useSuspendExtT, kotlin.Unit> BLOCK_BODY FUN name:produceFun visibility:public modality:FINAL <> () returnType:kotlin.Function0 BLOCK_BODY @@ -33,16 +33,16 @@ FILE fqName: fileName:/suspendConversionOnArbitraryExpression.kt BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit CALL 'public final fun produceFun (): kotlin.Function0 declared in ' type=kotlin.Function0 origin=null - FUN name:testExtAsExt visibility:public modality:FINAL <> (fn:kotlin.Function1) returnType:kotlin.Unit - VALUE_PARAMETER name:fn index:0 type:kotlin.Function1 + FUN name:testExtAsExt visibility:public modality:FINAL <> (fn:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit + VALUE_PARAMETER name:fn index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit - GET_VAR 'fn: kotlin.Function1 declared in .testExtAsExt' type=kotlin.Function1 origin=null - FUN name:testExtAsSimple visibility:public modality:FINAL <> (fn:kotlin.Function1) returnType:kotlin.Unit - VALUE_PARAMETER name:fn index:0 type:kotlin.Function1 + GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function1 declared in .testExtAsExt' type=@[ExtensionFunctionType] kotlin.Function1 origin=null + FUN name:testExtAsSimple visibility:public modality:FINAL <> (fn:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit + VALUE_PARAMETER name:fn index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit - GET_VAR 'fn: kotlin.Function1 declared in .testExtAsSimple' type=kotlin.Function1 origin=null + GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function1 declared in .testExtAsSimple' type=@[ExtensionFunctionType] kotlin.Function1 origin=null FUN name:testSimpleAsExt visibility:public modality:FINAL <> (fn:kotlin.Function1) returnType:kotlin.Unit VALUE_PARAMETER name:fn index:0 type:kotlin.Function1 BLOCK_BODY @@ -58,16 +58,16 @@ FILE fqName: fileName:/suspendConversionOnArbitraryExpression.kt BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit GET_VAR 'fn: kotlin.Function1 declared in .testSimpleAsExtT' type=kotlin.Function1 origin=null - FUN name:testExtAsSimpleT visibility:public modality:FINAL <> (fn:kotlin.Function1) returnType:kotlin.Unit - VALUE_PARAMETER name:fn index:0 type:kotlin.Function1 + FUN name:testExtAsSimpleT visibility:public modality:FINAL <> (fn:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit + VALUE_PARAMETER name:fn index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit - GET_VAR 'fn: kotlin.Function1 declared in .testExtAsSimpleT' type=kotlin.Function1 origin=null - FUN name:testExtAsExtT visibility:public modality:FINAL <> (fn:kotlin.Function1) returnType:kotlin.Unit - VALUE_PARAMETER name:fn index:0 type:kotlin.Function1 + GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function1 declared in .testExtAsSimpleT' type=@[ExtensionFunctionType] kotlin.Function1 origin=null + FUN name:testExtAsExtT visibility:public modality:FINAL <> (fn:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit + VALUE_PARAMETER name:fn index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit - GET_VAR 'fn: kotlin.Function1 declared in .testExtAsExtT' type=kotlin.Function1 origin=null + GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function1 declared in .testExtAsExtT' type=@[ExtensionFunctionType] kotlin.Function1 origin=null FUN name:testSimpleSAsSimpleT visibility:public modality:FINAL (fn:kotlin.Function1.testSimpleSAsSimpleT, kotlin.Unit>) returnType:kotlin.Unit TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?] VALUE_PARAMETER name:fn index:0 type:kotlin.Function1.testSimpleSAsSimpleT, kotlin.Unit> @@ -80,18 +80,18 @@ FILE fqName: fileName:/suspendConversionOnArbitraryExpression.kt BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit GET_VAR 'fn: kotlin.Function1.testSimpleSAsExtT, kotlin.Unit> declared in .testSimpleSAsExtT' type=kotlin.Function1.testSimpleSAsExtT, kotlin.Unit> origin=null - FUN name:testExtSAsSimpleT visibility:public modality:FINAL (fn:kotlin.Function1.testExtSAsSimpleT, kotlin.Unit>) returnType:kotlin.Unit + FUN name:testExtSAsSimpleT visibility:public modality:FINAL (fn:@[ExtensionFunctionType] kotlin.Function1.testExtSAsSimpleT, kotlin.Unit>) returnType:kotlin.Unit TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:fn index:0 type:kotlin.Function1.testExtSAsSimpleT, kotlin.Unit> + VALUE_PARAMETER name:fn index:0 type:@[ExtensionFunctionType] kotlin.Function1.testExtSAsSimpleT, kotlin.Unit> BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit - GET_VAR 'fn: kotlin.Function1.testExtSAsSimpleT, kotlin.Unit> declared in .testExtSAsSimpleT' type=kotlin.Function1.testExtSAsSimpleT, kotlin.Unit> origin=null - FUN name:testExtSAsExtT visibility:public modality:FINAL (fn:kotlin.Function1.testExtSAsExtT, kotlin.Unit>) returnType:kotlin.Unit + GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function1.testExtSAsSimpleT, kotlin.Unit> declared in .testExtSAsSimpleT' type=@[ExtensionFunctionType] kotlin.Function1.testExtSAsSimpleT, kotlin.Unit> origin=null + FUN name:testExtSAsExtT visibility:public modality:FINAL (fn:@[ExtensionFunctionType] kotlin.Function1.testExtSAsExtT, kotlin.Unit>) returnType:kotlin.Unit TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:fn index:0 type:kotlin.Function1.testExtSAsExtT, kotlin.Unit> + VALUE_PARAMETER name:fn index:0 type:@[ExtensionFunctionType] kotlin.Function1.testExtSAsExtT, kotlin.Unit> BLOCK_BODY ERROR_CALL 'Unresolved reference: #' type=kotlin.Unit - GET_VAR 'fn: kotlin.Function1.testExtSAsExtT, kotlin.Unit> declared in .testExtSAsExtT' type=kotlin.Function1.testExtSAsExtT, kotlin.Unit> origin=null + GET_VAR 'fn: @[ExtensionFunctionType] kotlin.Function1.testExtSAsExtT, kotlin.Unit> declared in .testExtSAsExtT' type=@[ExtensionFunctionType] kotlin.Function1.testExtSAsExtT, kotlin.Unit> origin=null FUN name:testSmartCastWithSuspendConversion visibility:public modality:FINAL <> (a:kotlin.Any) returnType:kotlin.Unit VALUE_PARAMETER name:a index:0 type:kotlin.Any BLOCK_BODY diff --git a/compiler/testData/ir/irText/expressions/variableAsFunctionCall.fir.txt b/compiler/testData/ir/irText/expressions/variableAsFunctionCall.fir.txt index bebcbf1e438..580b4a27afc 100644 --- a/compiler/testData/ir/irText/expressions/variableAsFunctionCall.fir.txt +++ b/compiler/testData/ir/irText/expressions/variableAsFunctionCall.fir.txt @@ -14,12 +14,12 @@ FILE fqName: fileName:/variableAsFunctionCall.kt RETURN type=kotlin.Nothing from='public final fun test1 (f: kotlin.Function0): kotlin.Unit declared in ' CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=INVOKE $this: GET_VAR 'f: kotlin.Function0 declared in .test1' type=kotlin.Function0 origin=null - FUN name:test2 visibility:public modality:FINAL <> (f:kotlin.Function1) returnType:kotlin.Unit - VALUE_PARAMETER name:f index:0 type:kotlin.Function1 + FUN name:test2 visibility:public modality:FINAL <> (f:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit + VALUE_PARAMETER name:f index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test2 (f: kotlin.Function1): kotlin.Unit declared in ' + RETURN type=kotlin.Nothing from='public final fun test2 (f: @[ExtensionFunctionType] kotlin.Function1): kotlin.Unit declared in ' CALL 'public abstract fun invoke (p1: P1 of kotlin.Function1): R of kotlin.Function1 [operator] declared in kotlin.Function1' type=kotlin.Unit origin=INVOKE - $this: GET_VAR 'f: kotlin.Function1 declared in .test2' type=kotlin.Function1 origin=null + $this: GET_VAR 'f: @[ExtensionFunctionType] kotlin.Function1 declared in .test2' type=@[ExtensionFunctionType] kotlin.Function1 origin=null p1: CONST String type=kotlin.String value="hello" FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.String BLOCK_BODY diff --git a/compiler/testData/ir/irText/lambdas/extensionLambda.fir.txt b/compiler/testData/ir/irText/lambdas/extensionLambda.fir.txt index 3002d793c2b..56bbb873c5c 100644 --- a/compiler/testData/ir/irText/lambdas/extensionLambda.fir.txt +++ b/compiler/testData/ir/irText/lambdas/extensionLambda.fir.txt @@ -2,7 +2,7 @@ FILE fqName: fileName:/extensionLambda.kt FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Int BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test1 (): kotlin.Int declared in ' - CALL 'public final fun run (block: kotlin.Function1): R of kotlin.run [inline] declared in kotlin' type=kotlin.Int origin=null + CALL 'public final fun run (block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.run [inline] declared in kotlin' type=kotlin.Int origin=null : kotlin.String : kotlin.Int $receiver: CONST String type=kotlin.String value="42" diff --git a/compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.fir.txt b/compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.fir.txt index 3c762d644a0..19b8e0ace2a 100644 --- a/compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.fir.txt +++ b/compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.fir.txt @@ -85,7 +85,7 @@ FILE fqName: fileName:/multipleImplicitReceivers.kt VALUE_PARAMETER name:fooImpl index:0 type:.IFoo VALUE_PARAMETER name:invokeImpl index:1 type:.IInvoke BLOCK_BODY - CALL 'public final fun with (receiver: T of kotlin.with, block: kotlin.Function1): R of kotlin.with [inline] declared in kotlin' type=kotlin.Int origin=null + CALL 'public final fun with (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.with [inline] declared in kotlin' type=kotlin.Int origin=null : .A : kotlin.Int receiver: GET_OBJECT 'CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=.A @@ -94,7 +94,7 @@ FILE fqName: fileName:/multipleImplicitReceivers.kt $receiver: VALUE_PARAMETER name: type:.A BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): kotlin.Int declared in .test' - CALL 'public final fun with (receiver: T of kotlin.with, block: kotlin.Function1): R of kotlin.with [inline] declared in kotlin' type=kotlin.Int origin=null + CALL 'public final fun with (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.with [inline] declared in kotlin' type=kotlin.Int origin=null : .IFoo : kotlin.Int receiver: GET_VAR 'fooImpl: .IFoo declared in .test' type=.IFoo origin=null @@ -103,7 +103,7 @@ FILE fqName: fileName:/multipleImplicitReceivers.kt $receiver: VALUE_PARAMETER name: type:.IFoo BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): kotlin.Int declared in .test.' - CALL 'public final fun with (receiver: T of kotlin.with, block: kotlin.Function1): R of kotlin.with [inline] declared in kotlin' type=kotlin.Int origin=null + CALL 'public final fun with (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.with [inline] declared in kotlin' type=kotlin.Int origin=null : .IInvoke : kotlin.Int receiver: GET_VAR 'invokeImpl: .IInvoke declared in .test' type=.IInvoke origin=null diff --git a/compiler/testData/ir/irText/stubs/builtinMap.fir.txt b/compiler/testData/ir/irText/stubs/builtinMap.fir.txt index 711a680f788..e82e6a185b6 100644 --- a/compiler/testData/ir/irText/stubs/builtinMap.fir.txt +++ b/compiler/testData/ir/irText/stubs/builtinMap.fir.txt @@ -16,7 +16,7 @@ FILE fqName: fileName:/builtinMap.kt pair: GET_VAR 'pair: kotlin.Pair.plus, V1 of .plus> declared in .plus' type=kotlin.Pair.plus, V1 of .plus> origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public final fun apply (block: kotlin.Function1): T of kotlin.apply [inline] declared in kotlin' type=java.util.LinkedHashMap.plus?, V1 of .plus?> origin=null + then: CALL 'public final fun apply (block: @[ExtensionFunctionType] kotlin.Function1): T of kotlin.apply [inline] declared in kotlin' type=java.util.LinkedHashMap.plus?, V1 of .plus?> origin=null : java.util.LinkedHashMap.plus?, V1 of .plus?> $receiver: CONSTRUCTOR_CALL 'public constructor (p0: kotlin.collections.Map?) declared in java.util.LinkedHashMap' type=java.util.LinkedHashMap.plus?, V1 of .plus?> origin=null : K1 of .plus? diff --git a/compiler/testData/ir/irText/types/castsInsideCoroutineInference.fir.txt b/compiler/testData/ir/irText/types/castsInsideCoroutineInference.fir.txt index a49164ec9d3..d865168afff 100644 --- a/compiler/testData/ir/irText/types/castsInsideCoroutineInference.fir.txt +++ b/compiler/testData/ir/irText/types/castsInsideCoroutineInference.fir.txt @@ -1,14 +1,14 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt - FUN name:scopedFlow visibility:public modality:FINAL (block:kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit>) returnType:.Flow.scopedFlow> + FUN name:scopedFlow visibility:public modality:FINAL (block:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit>) returnType:.Flow.scopedFlow> annotations: OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass]) TYPE_PARAMETER name:R index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:block index:0 type:kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit> + VALUE_PARAMETER name:block index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit> annotations: BuilderInference BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun scopedFlow (block: kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit>): .Flow.scopedFlow> declared in ' - CALL 'public final fun flow (block: kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit>): .Flow.flow> declared in ' type=.Flow.scopedFlow> origin=null + RETURN type=kotlin.Nothing from='public final fun scopedFlow (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit>): .Flow.scopedFlow> declared in ' + CALL 'public final fun flow (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit>): .Flow.flow> declared in ' type=.Flow.scopedFlow> origin=null : R of .scopedFlow block: FUN_EXPR type=kotlin.coroutines.SuspendFunction1<.FlowCollector.scopedFlow>, kotlin.Unit> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:.FlowCollector.scopedFlow>) returnType:kotlin.Unit [suspend] @@ -16,23 +16,23 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt BLOCK_BODY VAR name:collector type:.FlowCollector [val] GET_VAR ': .FlowCollector.scopedFlow> declared in .scopedFlow.' type=.FlowCollector origin=null - CALL 'public final fun flowScope (block: kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope>): R of .flowScope [suspend] declared in ' type=kotlin.Unit origin=null + CALL 'public final fun flowScope (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope>): R of .flowScope [suspend] declared in ' type=kotlin.Unit origin=null : kotlin.Unit block: FUN_EXPR type=kotlin.coroutines.SuspendFunction1<.CoroutineScope, kotlin.Unit> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:.CoroutineScope) returnType:kotlin.Unit [suspend] $receiver: VALUE_PARAMETER name: type:.CoroutineScope BLOCK_BODY CALL 'public abstract fun invoke (p1: P1 of kotlin.coroutines.SuspendFunction2, p2: P2 of kotlin.coroutines.SuspendFunction2): R of kotlin.coroutines.SuspendFunction2 [suspend,operator] declared in kotlin.coroutines.SuspendFunction2' type=kotlin.Unit origin=null - $this: GET_VAR 'block: kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit> declared in .scopedFlow' type=kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit> origin=null + $this: GET_VAR 'block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit> declared in .scopedFlow' type=@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.CoroutineScope, .FlowCollector.scopedFlow>, kotlin.Unit> origin=null p1: GET_VAR ': .CoroutineScope declared in .scopedFlow..' type=.CoroutineScope origin=null p2: GET_VAR 'val collector: .FlowCollector [val] declared in .scopedFlow.' type=.FlowCollector origin=null - FUN name:onCompletion visibility:public modality:FINAL ($receiver:.Flow.onCompletion>, action:kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit>) returnType:.Flow.onCompletion> + FUN name:onCompletion visibility:public modality:FINAL ($receiver:.Flow.onCompletion>, action:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit>) returnType:.Flow.onCompletion> TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] $receiver: VALUE_PARAMETER name: type:.Flow.onCompletion> - VALUE_PARAMETER name:action index:0 type:kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit> + VALUE_PARAMETER name:action index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit> BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun onCompletion (action: kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit>): .Flow.onCompletion> declared in ' - CALL 'public final fun unsafeFlow (block: kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit>): .Flow.unsafeFlow> [inline] declared in ' type=.Flow.onCompletion> origin=null + RETURN type=kotlin.Nothing from='public final fun onCompletion (action: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit>): .Flow.onCompletion> declared in ' + CALL 'public final fun unsafeFlow (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit>): .Flow.unsafeFlow> [inline] declared in ' type=.Flow.onCompletion> origin=null : T of .onCompletion block: FUN_EXPR type=kotlin.coroutines.SuspendFunction1<.FlowCollector.onCompletion>, kotlin.Unit> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:.FlowCollector.onCompletion>) returnType:kotlin.Unit [suspend] @@ -42,24 +42,24 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt CONSTRUCTOR_CALL 'public constructor (collector: .FlowCollector.SafeCollector>) [primary] declared in .SafeCollector' type=.SafeCollector origin=null : IrErrorType collector: GET_VAR ': .FlowCollector.onCompletion> declared in .onCompletion.' type=.FlowCollector origin=null - CALL 'public final fun invokeSafely (action: kotlin.coroutines.SuspendFunction2<.FlowCollector.invokeSafely>, kotlin.Throwable?, kotlin.Unit>): kotlin.Unit [suspend] declared in ' type=kotlin.Unit origin=null + CALL 'public final fun invokeSafely (action: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.invokeSafely>, kotlin.Throwable?, kotlin.Unit>): kotlin.Unit [suspend] declared in ' type=kotlin.Unit origin=null : T of .onCompletion $receiver: GET_VAR 'val safeCollector: .SafeCollector [val] declared in .onCompletion.' type=.SafeCollector origin=null - action: GET_VAR 'action: kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit> declared in .onCompletion' type=kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit> origin=null - FUN name:invokeSafely visibility:public modality:FINAL ($receiver:.FlowCollector.invokeSafely>, action:kotlin.coroutines.SuspendFunction2<.FlowCollector.invokeSafely>, kotlin.Throwable?, kotlin.Unit>) returnType:kotlin.Unit [suspend] + action: GET_VAR 'action: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit> declared in .onCompletion' type=@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.onCompletion>, kotlin.Throwable?, kotlin.Unit> origin=null + FUN name:invokeSafely visibility:public modality:FINAL ($receiver:.FlowCollector.invokeSafely>, action:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.invokeSafely>, kotlin.Throwable?, kotlin.Unit>) returnType:kotlin.Unit [suspend] TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] $receiver: VALUE_PARAMETER name: type:.FlowCollector.invokeSafely> - VALUE_PARAMETER name:action index:0 type:kotlin.coroutines.SuspendFunction2<.FlowCollector.invokeSafely>, kotlin.Throwable?, kotlin.Unit> + VALUE_PARAMETER name:action index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<.FlowCollector.invokeSafely>, kotlin.Throwable?, kotlin.Unit> BLOCK_BODY - FUN name:unsafeFlow visibility:public modality:FINAL (block:kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit>) returnType:.Flow.unsafeFlow> [inline] + FUN name:unsafeFlow visibility:public modality:FINAL (block:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit>) returnType:.Flow.unsafeFlow> [inline] annotations: OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass]) TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:block index:0 type:kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit> [crossinline] + VALUE_PARAMETER name:block index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit> [crossinline] annotations: BuilderInference BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun unsafeFlow (block: kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit>): .Flow.unsafeFlow> [inline] declared in ' + RETURN type=kotlin.Nothing from='public final fun unsafeFlow (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.unsafeFlow>, kotlin.Unit>): .Flow.unsafeFlow> [inline] declared in ' CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin' type=kotlin.Nothing origin=null FUN name:onCompletion visibility:public modality:FINAL ($receiver:.Flow.onCompletion>, action:kotlin.coroutines.SuspendFunction1) returnType:IrErrorType annotations: @@ -81,7 +81,7 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt VALUE_PARAMETER name:flow index:0 type:.Flow<*> BLOCK_BODY RETURN type=kotlin.Nothing from='private final fun asFairChannel (flow: .Flow<*>): .ReceiveChannel declared in ' - CALL 'public final fun produce (block: kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>): .ReceiveChannel.produce> declared in ' type=.ReceiveChannel origin=null + CALL 'public final fun produce (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>): .ReceiveChannel.produce> declared in ' type=.ReceiveChannel origin=null : kotlin.Any $receiver: GET_VAR ': .CoroutineScope declared in .asFairChannel' type=.CoroutineScope origin=null block: FUN_EXPR type=kotlin.coroutines.SuspendFunction1<.ProducerScope, kotlin.Unit> origin=LAMBDA @@ -120,7 +120,7 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt VALUE_PARAMETER name:flow index:0 type:.Flow<*> BLOCK_BODY RETURN type=kotlin.Nothing from='private final fun asChannel (flow: .Flow<*>): .ReceiveChannel declared in ' - CALL 'public final fun produce (block: kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>): .ReceiveChannel.produce> declared in ' type=.ReceiveChannel origin=null + CALL 'public final fun produce (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>): .ReceiveChannel.produce> declared in ' type=.ReceiveChannel origin=null : kotlin.Any $receiver: GET_VAR ': .CoroutineScope declared in .asChannel' type=.CoroutineScope origin=null block: FUN_EXPR type=kotlin.coroutines.SuspendFunction1<.ProducerScope, kotlin.Unit> origin=LAMBDA @@ -189,25 +189,25 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:flow visibility:public modality:FINAL (block:kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit>) returnType:.Flow.flow> + FUN name:flow visibility:public modality:FINAL (block:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit>) returnType:.Flow.flow> annotations: OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass]) TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:block index:0 type:kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit> + VALUE_PARAMETER name:block index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit> annotations: BuilderInference BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun flow (block: kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit>): .Flow.flow> declared in ' + RETURN type=kotlin.Nothing from='public final fun flow (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.FlowCollector.flow>, kotlin.Unit>): .Flow.flow> declared in ' CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin' type=kotlin.Nothing origin=null - FUN name:flowScope visibility:public modality:FINAL (block:kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope>) returnType:R of .flowScope [suspend] + FUN name:flowScope visibility:public modality:FINAL (block:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope>) returnType:R of .flowScope [suspend] annotations: OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass]) TYPE_PARAMETER name:R index:0 variance: superTypes:[kotlin.Any?] - VALUE_PARAMETER name:block index:0 type:kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope> + VALUE_PARAMETER name:block index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope> annotations: BuilderInference BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun flowScope (block: kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope>): R of .flowScope [suspend] declared in ' + RETURN type=kotlin.Nothing from='public final fun flowScope (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.CoroutineScope, R of .flowScope>): R of .flowScope [suspend] declared in ' CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin' type=kotlin.Nothing origin=null FUN name:collect visibility:public modality:FINAL ($receiver:.Flow.collect>, action:kotlin.coroutines.SuspendFunction1.collect, kotlin.Unit>) returnType:kotlin.Unit [inline,suspend] TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] @@ -307,16 +307,16 @@ FILE fqName: fileName:/castsInsideCoroutineInference.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:produce visibility:public modality:FINAL ($receiver:.CoroutineScope, block:kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>) returnType:.ReceiveChannel.produce> + FUN name:produce visibility:public modality:FINAL ($receiver:.CoroutineScope, block:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>) returnType:.ReceiveChannel.produce> annotations: OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass]) TYPE_PARAMETER name:E index:0 variance: superTypes:[kotlin.Any?] $receiver: VALUE_PARAMETER name: type:.CoroutineScope - VALUE_PARAMETER name:block index:0 type:kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit> + VALUE_PARAMETER name:block index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit> annotations: BuilderInference BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun produce (block: kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>): .ReceiveChannel.produce> declared in ' + RETURN type=kotlin.Nothing from='public final fun produce (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.ProducerScope.produce>, kotlin.Unit>): .ReceiveChannel.produce> declared in ' CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin' type=kotlin.Nothing origin=null CLASS INTERFACE name:ProducerScope modality:ABSTRACT visibility:public superTypes:[.CoroutineScope; .SendChannel.ProducerScope>] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.ProducerScope.ProducerScope>