Add test for obsolete KT-17431 issue
#KT-17431 Obsolete
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
// FILE: 1.kt
|
||||||
|
package test
|
||||||
|
|
||||||
|
class WeakReference<T>(val value: T)
|
||||||
|
|
||||||
|
inline fun <K, V> MutableMap<K, WeakReference<V>>.getOrPutWeak(key: K, defaultValue: ()->V): V {
|
||||||
|
val value = get(key)?.value
|
||||||
|
return if (value == null) {
|
||||||
|
val answer = defaultValue()
|
||||||
|
put(key, WeakReference(answer))
|
||||||
|
answer
|
||||||
|
} else {
|
||||||
|
value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: 2.kt
|
||||||
|
import test.*
|
||||||
|
|
||||||
|
class LabelHolder {
|
||||||
|
|
||||||
|
fun test(): String {
|
||||||
|
return "hello".label
|
||||||
|
}
|
||||||
|
|
||||||
|
private val labels = hashMapOf<String?, WeakReference<String>>()
|
||||||
|
|
||||||
|
private val String?.label: String
|
||||||
|
get(): String = labels.getOrPutWeak(this) { "OK" }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
return LabelHolder().test()
|
||||||
|
}
|
||||||
+5
@@ -2808,6 +2808,11 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo
|
|||||||
runTest("compiler/testData/codegen/boxInline/simple/funImportedFromObject.kt");
|
runTest("compiler/testData/codegen/boxInline/simple/funImportedFromObject.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt17431.kt")
|
||||||
|
public void testKt17431() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/simple/kt17431.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("params.kt")
|
@TestMetadata("params.kt")
|
||||||
public void testParams() throws Exception {
|
public void testParams() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
||||||
|
|||||||
Generated
+5
@@ -2808,6 +2808,11 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi
|
|||||||
runTest("compiler/testData/codegen/boxInline/simple/funImportedFromObject.kt");
|
runTest("compiler/testData/codegen/boxInline/simple/funImportedFromObject.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt17431.kt")
|
||||||
|
public void testKt17431() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/simple/kt17431.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("params.kt")
|
@TestMetadata("params.kt")
|
||||||
public void testParams() throws Exception {
|
public void testParams() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
||||||
|
|||||||
+5
@@ -2808,6 +2808,11 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli
|
|||||||
runTest("compiler/testData/codegen/boxInline/simple/funImportedFromObject.kt");
|
runTest("compiler/testData/codegen/boxInline/simple/funImportedFromObject.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt17431.kt")
|
||||||
|
public void testKt17431() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/simple/kt17431.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("params.kt")
|
@TestMetadata("params.kt")
|
||||||
public void testParams() throws Exception {
|
public void testParams() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user