Add test for obsolete KT-17431 issue

#KT-17431 Obsolete
This commit is contained in:
Mikhael Bogdanov
2019-01-02 11:39:28 +01:00
parent cf47bc0130
commit e0bcba5c0e
4 changed files with 51 additions and 0 deletions
+36
View File
@@ -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()
}
@@ -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");
@@ -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");
@@ -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");