diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2011-01-17 15:18:06 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2011-01-17 15:18:06 +0000 |
commit | 16e7ad360d1a902d6bd5c845642dbe14bcecdb9d (patch) | |
tree | a189e624a75dbb47a689a821208b41b0141e2ee0 /test/files/specialized/spec-t3896.scala | |
parent | be2778d50f1a73a941c6ffe6355f0ed401d6d8eb (diff) | |
download | scala-16e7ad360d1a902d6bd5c845642dbe14bcecdb9d.tar.gz scala-16e7ad360d1a902d6bd5c845642dbe14bcecdb9d.tar.bz2 scala-16e7ad360d1a902d6bd5c845642dbe14bcecdb9d.zip |
Adapted specialization tests to track number of...
Adapted specialization tests to track number of boxings.
Review by dragos
Diffstat (limited to 'test/files/specialized/spec-t3896.scala')
-rw-r--r-- | test/files/specialized/spec-t3896.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/files/specialized/spec-t3896.scala b/test/files/specialized/spec-t3896.scala new file mode 100644 index 0000000000..89326b4284 --- /dev/null +++ b/test/files/specialized/spec-t3896.scala @@ -0,0 +1,20 @@ +// see ticket #3896. Tests interaction between overloading, specialization and default params +trait Atomic[@specialized(Boolean) T] { + def x: T + + // crash depends on the overloading: if second method is "g", no crash. + def f(fn: T => T): Boolean = f(fn(x)) + def f[R](a: T, b: R = true) = b +} +class AtomicBoolean(val x: Boolean) extends Atomic[Boolean] + +object Test { + def main(args: Array[String]): Unit = { + val e = new AtomicBoolean(false) + val x = e.f( (a : Boolean) => !a ) // ok + println( e.f( (a : Boolean) => !a ) toString ) // ok + println( e.f( (a : Boolean) => !a) ) // compiler crash + + println(runtime.BoxesRunTime.integerBoxCount) + } +} |