blob: c132e608080c313337fe672c9153a57f46a408ce [file]
// WITH_STDLIB
import kotlin.test.*
// CHECK_CALLED_IN_SCOPE: function=charCodeAt scope=getStringChar
// CHECK_NOT_CALLED_IN_SCOPE: function=charSequenceGet scope=getStringChar
fun getStringChar(s: String, index: Int): Char = s[index]
// CHECK_CALLED_IN_SCOPE: function=charSequenceGet scope=getCharSequenceChar
// CHECK_NOT_CALLED_IN_SCOPE: function=charCodeAt scope=getCharSequenceChar
fun getCharSequenceChar(s: CharSequence, index: Int): Char = s[index]
private class MyCharSequence(val s: String) : CharSequence by s
fun box(): String {
assertEquals('a', getStringChar("a", 0))
assertEquals('a', getCharSequenceChar("a", 0))
assertEquals('a', getCharSequenceChar(MyCharSequence("a"), 0))
assertEquals(Char.MIN_VALUE, getStringChar("${Char.MIN_VALUE}", 0))
assertEquals(Char.MIN_VALUE, getCharSequenceChar("${Char.MIN_VALUE}", 0))
assertEquals(Char.MIN_VALUE, getCharSequenceChar(MyCharSequence("${Char.MIN_VALUE}"), 0))
assertEquals(Char.MAX_VALUE, getStringChar("${Char.MAX_VALUE}", 0))
assertEquals(Char.MAX_VALUE, getCharSequenceChar("${Char.MAX_VALUE}", 0))
assertEquals(Char.MAX_VALUE, getCharSequenceChar(MyCharSequence("${Char.MAX_VALUE}"), 0))
return "OK"
}