JVM_IR never generate setter synthetic accessor for 'val' field

KT-49316
This commit is contained in:
Dmitry Petrov
2021-10-28 18:04:45 +03:00
committed by TeamCityServer
parent d7ae7ca911
commit 4f0c3c3c0d
12 changed files with 147 additions and 12 deletions
@@ -0,0 +1,27 @@
// IGNORE_BACKEND: JS
// java.lang.AssertionError
// at org.jetbrains.kotlin.js.translate.context.TranslationContext.getDispatchReceiver(TranslationContext.java:590)
// at org.jetbrains.kotlin.js.translate.utils.TranslationUtils.backingFieldReference(TranslationUtils.java:237)
// at org.jetbrains.kotlin.js.translate.utils.TranslationUtils.assignmentToBackingField(TranslationUtils.java:250)
// at org.jetbrains.kotlin.js.translate.reference.BackingFieldAccessTranslator.translateAsSet(BackingFieldAccessTranslator.java:60)
// ...
// FILE: kt49316.kt
import a.*
// This test should become irrelevant after KT-35565 is fixed.
fun test(foo: Foo): String {
return foo.s
// VAL_REASSIGNMENT not reported in unreachable code.
// Make sure there's no BE internal error here.
foo.s = "oops"
}
fun box() = test(Foo("OK"))
// FILE: Foo.kt
package a
class Foo(val s: String)