From b8eb804774f3d246c34e5bc8423004287b1a10bb Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Mon, 10 Sep 2018 14:09:53 +0300 Subject: [PATCH] KT-26531 is fixed in NewInference mode --- .../variableAsFunctionCallWithGenerics.kt | 11 +++++ .../variableAsFunctionCallWithGenerics.txt | 42 +++++++++++++++++++ .../kotlin/ir/IrTextTestCaseGenerated.java | 5 +++ 3 files changed, 58 insertions(+) create mode 100644 compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt create mode 100644 compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.txt diff --git a/compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt b/compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt new file mode 100644 index 00000000000..25cff35826b --- /dev/null +++ b/compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt @@ -0,0 +1,11 @@ +// !LANGUAGE: +NewInference + +val T.gk: () -> T + get() = { -> this } + +fun testGeneric1(x: String) = x.gk() + +val T.kt26531Val: () -> T + get() = fun () = this + +fun kt26531() = 7.kt26531Val() \ No newline at end of file diff --git a/compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.txt b/compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.txt new file mode 100644 index 00000000000..96183714b16 --- /dev/null +++ b/compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.txt @@ -0,0 +1,42 @@ +FILE fqName: fileName:/variableAsFunctionCallWithGenerics.kt + PROPERTY name:gk visibility:public modality:FINAL flags:val + FUN name: visibility:public modality:FINAL ($receiver:T) returnType:() -> T flags: + correspondingProperty: PROPERTY name:gk visibility:public modality:FINAL flags:val + TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence] + $receiver: VALUE_PARAMETER name: type:T flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='() on T: () -> T' + BLOCK type=() -> T origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:T flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='(): T' + GET_VAR 'this@gk: T' type=T origin=null + FUNCTION_REFERENCE '(): T' type=() -> T origin=LAMBDA + FUN name:testGeneric1 visibility:public modality:FINAL <> (x:kotlin.String) returnType:kotlin.String flags: + VALUE_PARAMETER name:x index:0 type:kotlin.String flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='testGeneric1(String): String' + CALL 'invoke(): String' type=kotlin.String origin=INVOKE + $this: CALL '() on String: () -> String' type=() -> kotlin.String origin=GET_PROPERTY + <`0>: kotlin.String + $receiver: GET_VAR 'value-parameter x: String' type=kotlin.String origin=null + PROPERTY name:kt26531Val visibility:public modality:FINAL flags:val + FUN name: visibility:public modality:FINAL ($receiver:T) returnType:() -> T flags: + correspondingProperty: PROPERTY name:kt26531Val visibility:public modality:FINAL flags:val + TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] + $receiver: VALUE_PARAMETER name: type:T flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='() on T: () -> T' + BLOCK type=() -> T origin=ANONYMOUS_FUNCTION + FUN name: visibility:local modality:FINAL <> () returnType:T flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='(): T' + GET_VAR 'this@kt26531Val: T' type=T origin=null + FUNCTION_REFERENCE '(): T' type=() -> T origin=ANONYMOUS_FUNCTION + FUN name:kt26531 visibility:public modality:FINAL <> () returnType:kotlin.Int flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='kt26531(): Int' + CALL 'invoke(): Int' type=kotlin.Int origin=INVOKE + $this: CALL '() on Int: () -> Int' type=() -> kotlin.Int origin=GET_PROPERTY + <`0>: kotlin.Int + $receiver: CONST Int type=kotlin.Int value=7 diff --git a/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java b/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java index e5046ecc996..2b7e31b1bb4 100644 --- a/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java @@ -1147,6 +1147,11 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase { runTest("compiler/testData/ir/irText/expressions/variableAsFunctionCall.kt"); } + @TestMetadata("variableAsFunctionCallWithGenerics.kt") + public void testVariableAsFunctionCallWithGenerics() throws Exception { + runTest("compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt"); + } + @TestMetadata("when.kt") public void testWhen() throws Exception { runTest("compiler/testData/ir/irText/expressions/when.kt");