Skip to content

Commit 69aa3f5

Browse files
madsagerSpace
authored andcommitted
[JVM_IR] Fix inlining of callable references to extension methods
Cherry-picked from 608b889 #KT-47988 Fixed
1 parent dc5b47b commit 69aa3f5

File tree

10 files changed

+61
-1
lines changed

10 files changed

+61
-1
lines changed

compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class IrExpressionLambdaImpl(
136136
val reference: IrFunctionReference,
137137
irValueParameter: IrValueParameter
138138
) : ExpressionLambda(irValueParameter.isCrossinline), IrExpressionLambda {
139-
override val isExtensionLambda: Boolean = irValueParameter.type.isExtensionFunctionType
139+
override val isExtensionLambda: Boolean = function.extensionReceiverParameter != null
140140

141141
val function: IrFunction
142142
get() = reference.symbol.owner
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class A(var x: String)
2+
3+
fun f(s: String): String {
4+
fun A.localX() {
5+
x = s + "K"
6+
}
7+
8+
val a: A = A("FAIL")
9+
a.apply(A::localX)
10+
if (a.x != "OK") return a.x
11+
a.apply { localX() }
12+
return a.x
13+
}
14+
15+
fun box(): String {
16+
return f("O")
17+
}

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)