From 67229401c6bb3a10ebb223bfbbb32507bd7af203 Mon Sep 17 00:00:00 2001 From: Daniel Rothmaler Date: Wed, 14 Oct 2015 14:59:56 +0300 Subject: [PATCH] Add set operator to make the work with StringBuilder more list-like. Make StringBuilder.set jvm-only. Move jvm-specific test. --- libraries/stdlib/src/kotlin/text/StringBuilder.kt | 6 ++++++ .../stdlib/test/text/StringBuilderJVMTest.kt | 15 +++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 libraries/stdlib/test/text/StringBuilderJVMTest.kt diff --git a/libraries/stdlib/src/kotlin/text/StringBuilder.kt b/libraries/stdlib/src/kotlin/text/StringBuilder.kt index 5c7f925821e..7831d6c31fc 100644 --- a/libraries/stdlib/src/kotlin/text/StringBuilder.kt +++ b/libraries/stdlib/src/kotlin/text/StringBuilder.kt @@ -40,3 +40,9 @@ public fun StringBuilder.append(vararg value: Any?): StringBuilder { append(item) return this } + +/** + * Sets the character at the specified [index] to the specified [value]. + */ +@kotlin.jvm.JvmVersion +public operator fun StringBuilder.set(index: Int, value: Char): Unit = this.setCharAt(index, value) diff --git a/libraries/stdlib/test/text/StringBuilderJVMTest.kt b/libraries/stdlib/test/text/StringBuilderJVMTest.kt new file mode 100644 index 00000000000..4bd41acab5a --- /dev/null +++ b/libraries/stdlib/test/text/StringBuilderJVMTest.kt @@ -0,0 +1,15 @@ +package test.text + +import kotlin.* +import kotlin.test.* +import org.junit.Test as test + +class StringBuilderJVMTest() { + @test fun getAndSetChar() { + val sb = StringBuilder("abc") + sb[1] = 'z' + + assertEquals("azc", sb.toString()) + assertEquals('c', sb[2]) + } +}