diff options
author | Martin Odersky <odersky@gmail.com> | 2009-11-09 10:35:54 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-11-09 10:35:54 +0000 |
commit | 47ff60552398b09a8b757345cd56f12091d97b92 (patch) | |
tree | 535e5c9d5f2fdd4594c87b0dc63aceedc260dc00 /src/library/scala/runtime/ScalaRunTime.scala | |
parent | 6c6d9a042399ad3eb4847f65764e086431318350 (diff) | |
download | scala-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.scala | 7 |
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 |