[JS IR] Fix replacing super.toString() call with a runtime function call

#KT-52553 Fixed
This commit is contained in:
Sergej Jaskiewicz
2022-05-30 18:55:06 +03:00
committed by Space
parent f2111c9dc8
commit da7ff5b868
2 changed files with 24 additions and 4 deletions
+13 -1
View File
@@ -7,6 +7,17 @@ class A {
class B
// KT-52553
interface Parser
abstract class AbstractNamedParser(val name: String): Parser {
override fun toString(): String = "$name ${super<Parser>.toString()}"
}
abstract class PredicateTokenParser(name: String): Parser, AbstractNamedParser(name) {
}
data class TokenEqualityParser(val expected: Int): PredicateTokenParser("$expected") {
override fun toString(): String = super.toString()
}
fun box(): String {
assertEquals(A().toString(), "42")
assertEquals(B().toString(), "[object Object]")
@@ -16,5 +27,6 @@ fun box(): String {
assertEquals("123".toString(), "123")
assertEquals((123 as Any).toString(), "123")
assertEquals(null.toString(), "null")
assertEquals(TokenEqualityParser(2).toString(), "2 [object Object]")
return "OK"
}
}