diff options
author | Janek Bogucki <janekdb@gmail.com> | 2015-08-05 14:00:14 +0100 |
---|---|---|
committer | Janek Bogucki <janekdb@gmail.com> | 2015-08-05 14:00:14 +0100 |
commit | 0fbb2c451b98e922eeed8547e2d7b7465bbf8b2b (patch) | |
tree | 9294ba56e0f26799805f2a933a0f4e61739e752e | |
parent | ccded7d179625b38d01a031a0d0f6aaa1bb658a7 (diff) | |
download | scala-0fbb2c451b98e922eeed8547e2d7b7465bbf8b2b.tar.gz scala-0fbb2c451b98e922eeed8547e2d7b7465bbf8b2b.tar.bz2 scala-0fbb2c451b98e922eeed8547e2d7b7465bbf8b2b.zip |
Avoid unnecessary implicit view on String
Using length instead of size on String to avoid a conversion call.
This dump confirms there is a conversion to StringOps when using size.
object StringSize {
val s = "hi"
println(s.size)
}
$ scalac -Xprint:typer StringSize.scala
[[syntax trees at end of typer]] // StringSize.scala
package <empty> {
object StringSize extends scala.AnyRef {
def <init>(): StringSize.type = {
StringSize.super.<init>();
()
};
private[this] val s: String = "hi";
<stable> <accessor> def s: String = StringSize.this.s;
scala.this.Predef.println(scala.this.Predef.augmentString(StringSize.this.s).size)
}
}
-rw-r--r-- | src/library/scala/collection/immutable/StringLike.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/library/scala/collection/immutable/StringLike.scala b/src/library/scala/collection/immutable/StringLike.scala index 1ead894faf..1b52e40b72 100644 --- a/src/library/scala/collection/immutable/StringLike.scala +++ b/src/library/scala/collection/immutable/StringLike.scala @@ -217,8 +217,8 @@ self => pos = thisString.indexOf(separator, prev) } while (pos != -1) - if (prev != thisString.size) - res += thisString.substring(prev, thisString.size) + if (prev != thisString.length) + res += thisString.substring(prev, thisString.length) val initialResult = res.result() pos = initialResult.length |