From 4890cd4a176ad17627b2d3ff1b7060f737689b8a Mon Sep 17 00:00:00 2001 From: aviroop Date: Fri, 7 Nov 2025 22:05:11 +0000 Subject: [PATCH 1/5] [Header mode] Elide property initializer with explicit return types. ^KT-78422 --- .../resolve/headerMode/propertyDeclaration.fir.txt | 2 +- .../converter/LightTreeRawFirDeclarationBuilder.kt | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt index f751e1dd735f4..4006885a20522 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt @@ -1,5 +1,5 @@ FILE: propertyDeclaration.kt - public final val a: R|kotlin/String| = String(A) + public final val a: R|kotlin/String| public get(): R|kotlin/String| public final val b: R|kotlin/String| = String(B) public get(): R|kotlin/String| diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt index 7ca4c27715ff0..174795c142580 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt @@ -1426,9 +1426,10 @@ class LightTreeRawFirDeclarationBuilder( BACKING_FIELD -> fieldDeclaration = it else -> if (it.isExpression()) { context.calleeNamesForLambda += null - propertyInitializer = withForcedLocalContext { - expressionConverter.getAsFirExpression(it, "Should have initializer") - } + propertyInitializer = + if (!headerMode || context.forceKeepingTheBodyInHeaderMode || !isReturnType) withForcedLocalContext { + expressionConverter.getAsFirExpression(it, "Should have initializer") + } else null context.calleeNamesForLambda.removeLast() } } From 4f0fb2ef607edd33286b6767a1c279b8ca8cd97e Mon Sep 17 00:00:00 2001 From: aviroop Date: Fri, 7 Nov 2025 23:15:24 +0000 Subject: [PATCH 2/5] [Header mode] Elide property initializer after implicit types are resolved for header compilation. ^KT-78422 --- .../headerMode/constructorDeclaration.fir.txt | 8 +++---- .../headerMode/dataClassDeclaration.fir.txt | 4 ++-- .../headerMode/propertyDeclaration.fir.txt | 16 +++++++++++++- .../resolve/headerMode/propertyDeclaration.kt | 22 ++++++++++++++++++- .../FirDeclarationsResolveTransformer.kt | 8 +++++++ 5 files changed, 50 insertions(+), 8 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/constructorDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/constructorDeclaration.fir.txt index 2af9dd0e03743..b583fd65c80db 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/constructorDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/constructorDeclaration.fir.txt @@ -4,10 +4,10 @@ FILE: constructorDeclaration.kt super() } - public final val a: R|kotlin/String| = R|/a| + public final val a: R|kotlin/String| public get(): R|kotlin/String| - public final val b: R|kotlin/Int| = R|/b| + public final val b: R|kotlin/Int| public get(): R|kotlin/Int| public constructor(e: R|kotlin/String|): R|A| { @@ -24,10 +24,10 @@ FILE: constructorDeclaration.kt super() } - public final val a: R|kotlin/String| = R|/a| + public final val a: R|kotlin/String| public get(): R|kotlin/String| - public final val b: R|kotlin/Int| = R|/b| + public final val b: R|kotlin/Int| public get(): R|kotlin/Int| public constructor(e: R|kotlin/String|): R|B| { diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/dataClassDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/dataClassDeclaration.fir.txt index 5610c90334714..ac4aa6703ce52 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/dataClassDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/dataClassDeclaration.fir.txt @@ -4,10 +4,10 @@ FILE: dataClassDeclaration.kt super() } - public final val name: R|kotlin/String| = R|/name| + public final val name: R|kotlin/String| public get(): R|kotlin/String| - public final val age: R|kotlin/Int| = R|/age| + public final val age: R|kotlin/Int| public get(): R|kotlin/Int| public final operator fun component1(): R|kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt index 4006885a20522..e4964ed4d3a52 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt @@ -1,8 +1,22 @@ FILE: propertyDeclaration.kt public final val a: R|kotlin/String| public get(): R|kotlin/String| - public final val b: R|kotlin/String| = String(B) + public final val b: R|kotlin/String| public get(): R|kotlin/String| public final fun foo(): R|kotlin/String| public final val c: R|kotlin/String| public get(): R|kotlin/String| + public final val d: R|kotlin/Boolean| + public get(): R|kotlin/Boolean| + public final val e: R|kotlin/String| + public get(): R|kotlin/String| + public final var f: R|kotlin/Int| + public get(): R|kotlin/Int| + public set(value: R|kotlin/Int|): R|kotlin/Unit| + public final val g: R|kotlin/Int| + public get(): R|kotlin/Int| + public final val h: R|kotlin/String|by R|kotlin/lazy|( = lazy@fun (): R|kotlin/String| { + ^ String(H) + } + ) + public get(): R|kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt index b652d8e49b152..789cd9cd44adf 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt @@ -1,3 +1,4 @@ +// WITH_STDLIB // RUN_PIPELINE_TILL: BACKEND // FIR_DUMP // Public property with explicit type @@ -7,5 +8,24 @@ val b = "B" // Property with overriden getter and implicit type. fun foo() = "C" val c get() = foo() - +// Property initializer with control statement. +val d = true +val e = if(d) "True" else "False" +// Property with backing field use in setter. +var f: Int + set(value) { + if (value >= 0) { + // 'field' references the actual backing storage + field = value + } + } +// Property with backing field use in getter. +val g: Int + get() { + return g + 1 + } +// Delegated property with implicit type. +val h by lazy { + "H" +} /* GENERATED_FIR_TAGS: propertyDeclaration, stringLiteral */ diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index 51a09462496a6..b517b495148a7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -178,6 +178,9 @@ open class FirDeclarationsResolveTransformer( val cannotHaveDeepImplicitTypeRefs = property.backingField?.returnTypeRef !is FirImplicitTypeRef if (!property.isConst && implicitTypeOnly && property.returnTypeRef !is FirImplicitTypeRef && cannotHaveDeepImplicitTypeRefs) { + if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode)) { + property.replaceInitializer(null) + } return property } @@ -187,6 +190,8 @@ open class FirDeclarationsResolveTransformer( val initializerIsAlreadyResolved = bodyResolveState >= FirPropertyBodyResolveState.INITIALIZER_RESOLVED if (!initializerIsAlreadyResolved) { dataFlowAnalyzer.enterProperty(property) + } else if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode)) { + property.replaceInitializer(null) } var backingFieldIsAlreadyResolved = false @@ -295,6 +300,9 @@ open class FirDeclarationsResolveTransformer( property.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(it)) } } + if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode)) { + property.replaceInitializer(null) + } property } From a3ba76d00529cba517519eb2ee699eb39570f0d6 Mon Sep 17 00:00:00 2001 From: aviroop Date: Fri, 14 Nov 2025 21:56:55 +0000 Subject: [PATCH 3/5] [Header mode] Skip eliding const property initializers. ^KT-78422 --- .../testData/resolve/headerMode/propertyDeclaration.fir.txt | 2 ++ .../testData/resolve/headerMode/propertyDeclaration.kt | 1 + .../lightTree/converter/LightTreeRawFirDeclarationBuilder.kt | 5 ++++- .../body/resolve/FirDeclarationsResolveTransformer.kt | 4 ++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt index e4964ed4d3a52..7cc01e9eb3077 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt @@ -20,3 +20,5 @@ FILE: propertyDeclaration.kt } ) public get(): R|kotlin/String| + public final const val i: R|kotlin/Int| = Int(123) + public get(): R|kotlin/Int| diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt index 789cd9cd44adf..f5ec0e9c65625 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt @@ -28,4 +28,5 @@ val g: Int val h by lazy { "H" } +const val i = 123 /* GENERATED_FIR_TAGS: propertyDeclaration, stringLiteral */ diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt index 174795c142580..c6680ad823c48 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt @@ -1427,7 +1427,10 @@ class LightTreeRawFirDeclarationBuilder( else -> if (it.isExpression()) { context.calleeNamesForLambda += null propertyInitializer = - if (!headerMode || context.forceKeepingTheBodyInHeaderMode || !isReturnType) withForcedLocalContext { + if (!headerMode || + context.forceKeepingTheBodyInHeaderMode || + !isReturnType || + modifiers?.isConst() == true) withForcedLocalContext { expressionConverter.getAsFirExpression(it, "Should have initializer") } else null context.calleeNamesForLambda.removeLast() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index b517b495148a7..ea408ac280f27 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -190,7 +190,7 @@ open class FirDeclarationsResolveTransformer( val initializerIsAlreadyResolved = bodyResolveState >= FirPropertyBodyResolveState.INITIALIZER_RESOLVED if (!initializerIsAlreadyResolved) { dataFlowAnalyzer.enterProperty(property) - } else if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode)) { + } else if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && !property.isConst) { property.replaceInitializer(null) } @@ -300,7 +300,7 @@ open class FirDeclarationsResolveTransformer( property.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(it)) } } - if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode)) { + if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && !property.isConst) { property.replaceInitializer(null) } From 72fa3c0e70d35ae91a6fc656342c12f7f61292b6 Mon Sep 17 00:00:00 2001 From: aviroop Date: Wed, 19 Nov 2025 19:27:29 +0000 Subject: [PATCH 4/5] [Header mode] Skip eliding properties with anonymous object initializers. ^KT-78422 --- .../headerMode/propertyDeclaration.fir.txt | 16 ++++++++++++++++ .../resolve/headerMode/propertyDeclaration.kt | 4 ++++ .../FirDeclarationsResolveTransformer.kt | 18 +++++++++++++++--- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt index 7cc01e9eb3077..4803371d80bab 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt @@ -22,3 +22,19 @@ FILE: propertyDeclaration.kt public get(): R|kotlin/String| public final const val i: R|kotlin/Int| = Int(123) public get(): R|kotlin/Int| + public final val j: R|kotlin/Any| = object : R|kotlin/Any| { + private constructor(): R|| { + super() + } + + public final fun foo(): R|kotlin/String| { + ^foo String(foo) + } + + public final fun bar(): R|kotlin/String| { + ^bar String(bar) + } + + } + + public get(): R|kotlin/Any| diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt index f5ec0e9c65625..1de22dedbd21a 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt @@ -29,4 +29,8 @@ val h by lazy { "H" } const val i = 123 +val j = object { + fun foo() = "foo" + fun bar(): String = "bar" +} /* GENERATED_FIR_TAGS: propertyDeclaration, stringLiteral */ diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index ea408ac280f27..0d91a6492ffbf 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -178,7 +178,9 @@ open class FirDeclarationsResolveTransformer( val cannotHaveDeepImplicitTypeRefs = property.backingField?.returnTypeRef !is FirImplicitTypeRef if (!property.isConst && implicitTypeOnly && property.returnTypeRef !is FirImplicitTypeRef && cannotHaveDeepImplicitTypeRefs) { - if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode)) { + if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && + property.initializer !is FirAnonymousObjectExpression + ) { property.replaceInitializer(null) } return property @@ -190,7 +192,13 @@ open class FirDeclarationsResolveTransformer( val initializerIsAlreadyResolved = bodyResolveState >= FirPropertyBodyResolveState.INITIALIZER_RESOLVED if (!initializerIsAlreadyResolved) { dataFlowAnalyzer.enterProperty(property) - } else if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && !property.isConst) { + } + else if ( + session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && + !property.isConst && + property.returnTypeRef !is FirImplicitTypeRef && + property.initializer !is FirAnonymousObjectExpression + ) { property.replaceInitializer(null) } @@ -300,7 +308,11 @@ open class FirDeclarationsResolveTransformer( property.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(it)) } } - if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && !property.isConst) { + if (session.languageVersionSettings.getFlag(AnalysisFlags.headerMode) && + !property.isConst && + property.returnTypeRef !is FirImplicitTypeRef && + property.initializer !is FirAnonymousObjectExpression + ) { property.replaceInitializer(null) } From f66186c4ab089bfaf4b45cee848ad07f070c8b79 Mon Sep 17 00:00:00 2001 From: aviroop Date: Wed, 19 Nov 2025 19:34:37 +0000 Subject: [PATCH 5/5] [Header mode] Elide expression functions in Lt2Fir. ^KT-78422,KT-82336 --- .../headerMode/propertyDeclaration.fir.txt | 4 ++++ .../resolve/headerMode/propertyDeclaration.kt | 4 ++++ .../LightTreeRawFirDeclarationBuilder.kt | 24 +++++++++---------- .../box/inference/pcla/issues/kt67993.kt | 2 -- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt index 4803371d80bab..28d33119debd9 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.fir.txt @@ -38,3 +38,7 @@ FILE: propertyDeclaration.kt } public get(): R|kotlin/Any| + public final val k: R|(kotlin/String) -> kotlin/String| + public get(): R|(kotlin/String) -> kotlin/String| + public final val l: R|(kotlin/String) -> kotlin/String| + public get(): R|(kotlin/String) -> kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt index 1de22dedbd21a..42fd7b9a6a3d3 100644 --- a/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt +++ b/compiler/fir/analysis-tests/testData/resolve/headerMode/propertyDeclaration.kt @@ -33,4 +33,8 @@ val j = object { fun foo() = "foo" fun bar(): String = "bar" } +val k = fun(foo: String): String { + return "foo: $foo" +} +val l = fun(foo: String): String { return "Foo: $foo" } /* GENERATED_FIR_TAGS: propertyDeclaration, stringLiteral */ diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt index c6680ad823c48..adde39eb54e97 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt @@ -1426,13 +1426,9 @@ class LightTreeRawFirDeclarationBuilder( BACKING_FIELD -> fieldDeclaration = it else -> if (it.isExpression()) { context.calleeNamesForLambda += null - propertyInitializer = - if (!headerMode || - context.forceKeepingTheBodyInHeaderMode || - !isReturnType || - modifiers?.isConst() == true) withForcedLocalContext { - expressionConverter.getAsFirExpression(it, "Should have initializer") - } else null + propertyInitializer = withForcedLocalContext(!isReturnType || modifiers?.isConst() == true) { + expressionConverter.getAsFirExpression(it, "Should have initializer") + } context.calleeNamesForLambda.removeLast() } } @@ -2074,8 +2070,9 @@ class LightTreeRawFirDeclarationBuilder( } val allowLegacyContractDescription = outerContractDescription == null - val forceKeepingTheBodyInHeaderMode = context.forceKeepingTheBodyInHeaderMode || functionBuilder.status.isInline - val bodyWithContractDescription = withForcedLocalContext(forceKeepingTheBodyInHeaderMode) { + val bodyWithContractDescription = withForcedLocalContext( + forceKeepingTheBodyInHeaderMode = functionBuilder.status.isInline || functionBuilder.returnTypeRef is FirImplicitTypeRef + ) { convertFunctionBody(block, expression, allowLegacyContractDescription) } this.body = bodyWithContractDescription.first @@ -2134,9 +2131,12 @@ class LightTreeRawFirDeclarationBuilder( block to contractDescription } } - expression != null -> FirSingleExpressionBlock( - expressionConverter.getAsFirExpression(expression, "Function has no body (but should)").toReturn() - ) to null + expression != null -> { + if (generateHeader) buildEmptyExpressionBlock() to null + else FirSingleExpressionBlock( + expressionConverter.getAsFirExpression(expression, "Function has no body (but should)").toReturn() + ) to null + } else -> null to null } } diff --git a/compiler/testData/codegen/box/inference/pcla/issues/kt67993.kt b/compiler/testData/codegen/box/inference/pcla/issues/kt67993.kt index 0cca82c14245b..a21c6ffc4b375 100644 --- a/compiler/testData/codegen/box/inference/pcla/issues/kt67993.kt +++ b/compiler/testData/codegen/box/inference/pcla/issues/kt67993.kt @@ -1,6 +1,4 @@ // ISSUE: KT-67993 -// IGNORE_HEADER_MODE: JVM_IR -// Reason: KT-82336 fun box(): String { return Klass().buildee.produce()