From 0fbb2c451b98e922eeed8547e2d7b7465bbf8b2b Mon Sep 17 00:00:00 2001 From: Janek Bogucki Date: Wed, 5 Aug 2015 14:00:14 +0100 Subject: 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 { object StringSize extends scala.AnyRef { def (): StringSize.type = { StringSize.super.(); () }; private[this] val s: String = "hi"; def s: String = StringSize.this.s; scala.this.Predef.println(scala.this.Predef.augmentString(StringSize.this.s).size) } } --- src/library/scala/collection/immutable/StringLike.scala | 4 ++-- 1 file 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 -- cgit v1.2.3