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");
|
||||
}
|
||||
|
||||
@TestMetadata("kt17431.kt")
|
||||
public void testKt17431() throws Exception {
|
||||
runTest("compiler/testData/codegen/boxInline/simple/kt17431.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("params.kt")
|
||||
public void testParams() throws Exception {
|
||||
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");
|
||||
}
|
||||
|
||||
@TestMetadata("kt17431.kt")
|
||||
public void testKt17431() throws Exception {
|
||||
runTest("compiler/testData/codegen/boxInline/simple/kt17431.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("params.kt")
|
||||
public void testParams() throws Exception {
|
||||
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");
|
||||
}
|
||||
|
||||
@TestMetadata("kt17431.kt")
|
||||
public void testKt17431() throws Exception {
|
||||
runTest("compiler/testData/codegen/boxInline/simple/kt17431.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("params.kt")
|
||||
public void testParams() throws Exception {
|
||||
runTest("compiler/testData/codegen/boxInline/simple/params.kt");
|
||||
|
||||
Reference in New Issue
Block a user