summaryrefslogtreecommitdiff
path: root/test/disabled/pos
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-02-15 12:15:38 -0800
committerPaul Phillips <paulp@improving.org>2012-02-15 12:20:59 -0800
commit32646c3b84ecb4ae7946c3ea6f74eaade38bc4e0 (patch)
tree2322e048aa49a3f96c2b1900a6d9f1d550bbdb8f /test/disabled/pos
parent6543b2d983a4e44ad9bd2ea036d53ce52c37284c (diff)
downloadscala-32646c3b84ecb4ae7946c3ea6f74eaade38bc4e0.tar.gz
scala-32646c3b84ecb4ae7946c3ea6f74eaade38bc4e0.tar.bz2
scala-32646c3b84ecb4ae7946c3ea6f74eaade38bc4e0.zip
Test cases which motivated preceding reversions.
See t5452 for disabled/neg/t5452 and disabled/pos/spurious-overload I give up, review by @hubertp.
Diffstat (limited to 'test/disabled/pos')
-rw-r--r--test/disabled/pos/spurious-overload.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/disabled/pos/spurious-overload.scala b/test/disabled/pos/spurious-overload.scala
new file mode 100644
index 0000000000..9767a44eee
--- /dev/null
+++ b/test/disabled/pos/spurious-overload.scala
@@ -0,0 +1,32 @@
+object Test extends App {
+ def foo(bar: Any) = bar
+
+ val code = foo{
+ object lazyLib {
+
+ def delay[A](value: => A): Susp[A] = new SuspImpl[A](value)
+
+ implicit def force[A](s: Susp[A]): A = s()
+
+ abstract class Susp[+A] extends Function0[A]
+
+ class SuspImpl[A](lazyValue: => A) extends Susp[A] {
+ private var maybeValue: Option[A] = None
+
+ override def apply() = maybeValue match {
+ case None =>
+ val value = lazyValue
+ maybeValue = Some(value)
+ value
+ case Some(value) =>
+ value
+ }
+ }
+ }
+
+ import lazyLib._
+
+ val s: Susp[Int] = delay { println("evaluating..."); 3 }
+ println("2 + s = " + (2 + s)) // implicit call to force()
+ }
+} \ No newline at end of file