From 6eaa6201f03d89ca0440ca0d703d043b669bf436 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Mon, 20 Oct 2014 15:47:19 +0400 Subject: [PATCH] Test for obsolete KT-6020: Type inference failed on property reference of generic class #KT-6020 Can't Reproduce --- .../property/genericProperty.kt | 20 +++++++++++++++++++ ...lackBoxWithStdlibCodegenTestGenerated.java | 6 ++++++ 2 files changed, 26 insertions(+) create mode 100644 compiler/testData/codegen/boxWithStdlib/callableReference/property/genericProperty.kt diff --git a/compiler/testData/codegen/boxWithStdlib/callableReference/property/genericProperty.kt b/compiler/testData/codegen/boxWithStdlib/callableReference/property/genericProperty.kt new file mode 100644 index 00000000000..d5e2dd8f1d2 --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/callableReference/property/genericProperty.kt @@ -0,0 +1,20 @@ +//For KT-6020 +import kotlin.reflect.KMemberProperty +import kotlin.reflect.KMutableMemberProperty + +class Value(var value: T = null as T, var text: String? = null) + +val Value.additionalText by DVal(Value::text) //works + +val Value.additionalValue by DVal(Value::value) //not work + +class DVal>(val kmember: P) { + fun get(t: T, p: PropertyMetadata): R { + return kmember.get(t) + } +} + +fun box(): String { + val p = Value("O", "K") + return p.additionalValue + p.additionalText +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index dc2c1a70e8b..e3bdb1a01a4 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -634,6 +634,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode doTestWithStdlib(fileName); } + @TestMetadata("genericProperty.kt") + public void testGenericProperty() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/callableReference/property/genericProperty.kt"); + doTestWithStdlib(fileName); + } + @TestMetadata("javaBeanConvention.kt") public void testJavaBeanConvention() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/callableReference/property/javaBeanConvention.kt");