diff options
author | Aleksandar Prokopec <axel22@gmail.com> | 2012-02-16 13:34:06 +0100 |
---|---|---|
committer | Aleksandar Prokopec <axel22@gmail.com> | 2012-02-16 13:34:06 +0100 |
commit | 53b05bb12f5a7a50448bcac9434389bf95273c45 (patch) | |
tree | d10140f4a3f2ea46dd39b47828c1326e9a61681e /test/disabled/pos/spurious-overload.scala | |
parent | f2ccb43a844e484ae511c8cff3fbf534a0d86ebe (diff) | |
parent | 91148376049a152edec12348ff9b7e9e93e6ebe1 (diff) | |
download | scala-53b05bb12f5a7a50448bcac9434389bf95273c45.tar.gz scala-53b05bb12f5a7a50448bcac9434389bf95273c45.tar.bz2 scala-53b05bb12f5a7a50448bcac9434389bf95273c45.zip |
Merge branch 'master' into execution-context
Conflicts:
src/library/scala/package.scala
Diffstat (limited to 'test/disabled/pos/spurious-overload.scala')
-rw-r--r-- | test/disabled/pos/spurious-overload.scala | 32 |
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 |