diff options
author | Martin Odersky <odersky@gmail.com> | 2012-02-22 23:05:26 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2012-02-22 23:05:26 +0100 |
commit | 4eae7511a297b9d51e1aea2da38c5dacf786efa0 (patch) | |
tree | 9b57d4b39e3e76e5ba42be4e7f679a02a2f2befc /src/library/scala | |
parent | d604417bac9a583048d750f627c2de5f8e46424f (diff) | |
download | scala-4eae7511a297b9d51e1aea2da38c5dacf786efa0.tar.gz scala-4eae7511a297b9d51e1aea2da38c5dacf786efa0.tar.bz2 scala-4eae7511a297b9d51e1aea2da38c5dacf786efa0.zip |
Compiler now ready to accept value classes in standard library. Time for a new STARR!
Diffstat (limited to 'src/library/scala')
-rw-r--r-- | src/library/scala/runtime/StringAdd.scala | 7 | ||||
-rw-r--r-- | src/library/scala/runtime/StringFormat.scala | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/library/scala/runtime/StringAdd.scala b/src/library/scala/runtime/StringAdd.scala index a1256c3f3b..a7e78ea9a3 100644 --- a/src/library/scala/runtime/StringAdd.scala +++ b/src/library/scala/runtime/StringAdd.scala @@ -8,8 +8,15 @@ package scala.runtime +/** A wrapper class that adds string concatenation `+` to any value */ final class StringAdd(val self: Any) { + // Note: The implicit conversion from Any to StringAdd is one of two + // implicit conversions from Any to AnyRef in Predef. It is important to have at least + // two such conversions, so that silent conversions from value types to AnyRef + // are avoided. If StringFormat should become a value class, another + // implicit conversion from Any to AnyRef has to be introduced in Predef + def +(other: String) = String.valueOf(self) + other } diff --git a/src/library/scala/runtime/StringFormat.scala b/src/library/scala/runtime/StringFormat.scala index 94bba4043c..1f0183afbb 100644 --- a/src/library/scala/runtime/StringFormat.scala +++ b/src/library/scala/runtime/StringFormat.scala @@ -8,7 +8,15 @@ package scala.runtime -final class StringFormat(val self: Any) extends AnyVal { +/** A wrapper class that adds a `formatted` operation to any value + */ +final class StringFormat(val self: Any) { + + // Note: The implicit conversion from Any to StringFormat is one of two + // implicit conversions from Any to AnyRef in Predef. It is important to have at least + // two such conversions, so that silent conversions from value types to AnyRef + // are avoided. If StringFormat should become a value class, another + // implicit conversion from Any to AnyRef has to be introduced in Predef /** Returns string formatted according to given `format` string. * Format strings are as for `String.format` |