diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-10-17 14:15:28 +0200 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-11-12 07:29:42 -0800 |
commit | e2a34984527c0437cd42476934d0c22164551eed (patch) | |
tree | c307db47765519f290f5165694445072935a1ec6 /src/compiler/scala/tools/nsc/util/package.scala | |
parent | beed16825e53077c40ff38b035bfaafb3a4e39d5 (diff) | |
download | scala-e2a34984527c0437cd42476934d0c22164551eed.tar.gz scala-e2a34984527c0437cd42476934d0c22164551eed.tar.bz2 scala-e2a34984527c0437cd42476934d0c22164551eed.zip |
Make parameters to implicit value classes private
So that they aren't offered as an autocomplete suggestion:
implicit class Shouty(string: String) extends AnyVal {
def SHOUT_! = string.toUpperCase + "!"
}
"". // autocompletion offers `.string` here
The original incarnation of value classes didn't allow this
sort of encapsulation, so we either invented goofy names like
`__thingToAdd` or just picked `x` or `self`. But SI-7859 has
delivered us the freedom to keep the accessor private.
Should we keep any of these accessors around in a deprecated
form?
The implicit classes in Predef were added in 2.11.0-M2
(c26a8db067e4f), so they are okay.
I think we can make reason that these APIs were both accidental
and unlikely to be interpreted as public, so we can break them
immediately.
scala> Left(1).x
res0: scala.util.Either[Int,Int] = Left(1)
scala> import concurrent.duration._
import concurrent.duration._
scala> 1.n
res1: Int = 1
Diffstat (limited to 'src/compiler/scala/tools/nsc/util/package.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/util/package.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/util/package.scala b/src/compiler/scala/tools/nsc/util/package.scala index 0db351f918..cb46004174 100644 --- a/src/compiler/scala/tools/nsc/util/package.scala +++ b/src/compiler/scala/tools/nsc/util/package.scala @@ -75,7 +75,7 @@ package object util { s"$clazz$msg @ $frame" } - implicit class StackTraceOps(val e: Throwable) extends AnyVal with StackTracing { + implicit class StackTraceOps(private val e: Throwable) extends AnyVal with StackTracing { /** Format the stack trace, returning the prefix consisting of frames that satisfy * a given predicate. * The format is similar to the typical case described in the JavaDoc |