summaryrefslogtreecommitdiff
path: root/src/library/scala/runtime/ScalaRunTime.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-11-09 10:35:54 +0000
committerMartin Odersky <odersky@gmail.com>2009-11-09 10:35:54 +0000
commit47ff60552398b09a8b757345cd56f12091d97b92 (patch)
tree535e5c9d5f2fdd4594c87b0dc63aceedc260dc00 /src/library/scala/runtime/ScalaRunTime.scala
parent6c6d9a042399ad3eb4847f65764e086431318350 (diff)
downloadscala-47ff60552398b09a8b757345cd56f12091d97b92.tar.gz
scala-47ff60552398b09a8b757345cd56f12091d97b92.tar.bz2
scala-47ff60552398b09a8b757345cd56f12091d97b92.zip
fast path equals and hash methods.
Diffstat (limited to 'src/library/scala/runtime/ScalaRunTime.scala')
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index 4541c0147c..a93ff61a41 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -120,6 +120,13 @@ object ScalaRunTime {
code
}
+ /** Fast path equality method for inlining; used when -optimise is set.
+ */
+ @inline def inlinedEquals(x: Object, y: Object): Boolean =
+ if (x eq null) y eq null
+ else if (x.isInstanceOf[Number] || x.isInstanceOf[Character]) BoxesRunTime.equals(x, y)
+ else x.equals(y)
+
def _equals(x: Product, y: Any): Boolean = y match {
case y1: Product if x.productArity == y1.productArity =>
val arity = x.productArity