summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/immutable/StringOps.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/collection/immutable/StringOps.scala')
-rw-r--r--src/library/scala/collection/immutable/StringOps.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/library/scala/collection/immutable/StringOps.scala b/src/library/scala/collection/immutable/StringOps.scala
index 63d5984b11..5fc71c7259 100644
--- a/src/library/scala/collection/immutable/StringOps.scala
+++ b/src/library/scala/collection/immutable/StringOps.scala
@@ -36,7 +36,17 @@ final class StringOps(override val repr: String) extends StringLike[String] {
/** Creates a string builder buffer as builder for this class */
override protected[this] def newBuilder = StringBuilder.newBuilder
+ override def apply(index: Int): Char = repr charAt index
+ override def slice(from: Int, until: Int): String = {
+ val start = if (from < 0) 0 else from
+ if (until <= start || start >= repr.length)
+ return ""
+
+ val end = if (until > length) length else until
+ repr.substring(start, end)
+ }
override def toString = repr
+ override def length = repr.length
def seq = this.iterator
}