summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-06-08 12:04:27 -0700
committerPaul Phillips <paulp@improving.org>2013-06-08 12:04:27 -0700
commit45d61774eb255416c96e983cdb87960ad6415b74 (patch)
tree4aeb3debc1cf0a79ece22175f4be8450b607594b /src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala
parent04837e710552cc53b0b06b2bc47ee7d2856ae230 (diff)
downloadscala-45d61774eb255416c96e983cdb87960ad6415b74.tar.gz
scala-45d61774eb255416c96e983cdb87960ad6415b74.tar.bz2
scala-45d61774eb255416c96e983cdb87960ad6415b74.zip
Eliminate needless Options.
Many of our core types have dedicated sentinels which serve perfectly to communicate "no value", even more perfectly than None. Saving a billion allocations is gravy.
Diffstat (limited to 'src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala')
-rw-r--r--src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala b/src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala
index 6251849182..073f124630 100644
--- a/src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala
+++ b/src/reflect/scala/reflect/internal/ExistentialsAndSkolems.scala
@@ -77,14 +77,14 @@ trait ExistentialsAndSkolems {
* also replaced, except for term symbols of an Ident tree, where
* only the type of the Ident is changed.
*/
- final def existentialTransform[T](rawSyms: List[Symbol], tp: Type, rawOwner: Option[Symbol] = None)(creator: (List[Symbol], Type) => T): T = {
+ final def existentialTransform[T](rawSyms: List[Symbol], tp: Type, rawOwner: Symbol = NoSymbol)(creator: (List[Symbol], Type) => T): T = {
val allBounds = existentialBoundsExcludingHidden(rawSyms)
val typeParams: List[Symbol] = rawSyms map { sym =>
val name = sym.name match {
case x: TypeName => x
case x => tpnme.singletonName(x)
}
- def rawOwner0 = rawOwner.getOrElse(abort(s"no owner provided for existential transform over raw parameter: $sym"))
+ def rawOwner0 = rawOwner orElse abort(s"no owner provided for existential transform over raw parameter: $sym")
val bound = allBounds(sym)
val sowner = if (isRawParameter(sym)) rawOwner0 else sym.owner
val quantified = sowner.newExistential(name, sym.pos)
@@ -106,7 +106,7 @@ trait ExistentialsAndSkolems {
* @param hidden The original type
* @param rawOwner The owner for Java raw types.
*/
- final def packSymbols(hidden: List[Symbol], tp: Type, rawOwner: Option[Symbol] = None): Type =
+ final def packSymbols(hidden: List[Symbol], tp: Type, rawOwner: Symbol = NoSymbol): Type =
if (hidden.isEmpty) tp
else existentialTransform(hidden, tp, rawOwner)(existentialAbstraction)
}