Closed
Description
object Test extends dotty.runtime.LegacyApp {
class Result(_str: => String) {
lazy val str = _str
}
def foo(str: => String)(i: Int) = new Result(str)
def bar(f: Int => Result) = f(42)
var test: String = null
val result = bar(foo(test))
test = "bar"
if (result.str == null) {
println("Destroy ALL THE THINGS!!!")
} else {
println("Stroke a kitten")
}
}
[info] % dotc t5610a.scala
[info] % java \
[info] -classpath \
[info] /Users/dark/workspace/dotty/tests/partest-generated/run/t5610a-run.obj:/Users/dark/workspace/dotty/target/scala-2.11/dotty_2.11-0.1-SNAPSHOT.jar:/Users/dark/.ivy2/cache/me.d-d/scala-compiler/jars/scala-compiler-2.11.5-20150506-175515-8fc7635b56.jar:/Users/dark/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.11.5.jar:/Users/dark/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.5.jar \
[info] -Dfile.encoding=UTF-8 \
[info] -Djava.library.path=/Users/dark/workspace/dotty/tests/partest-generated/run \
[info] -Dpartest.output=/Users/dark/workspace/dotty/tests/partest-generated/run/t5610a-run.obj \
[info] -Dpartest.lib=/Users/dark/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.5.jar \
[info] -Dpartest.reflect=/Users/dark/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.11.5.jar \
[info] -Dpartest.comp=/Users/dark/workspace/dotty/target/scala-2.11/dotty_2.11-0.1-SNAPSHOT.jar \
[info] -Dpartest.cwd=/Users/dark/workspace/dotty/tests/partest-generated/run \
[info] -Dpartest.test-path=/Users/dark/workspace/dotty/tests/partest-generated/run/t5610a.scala \
[info] -Dpartest.testname=t5610a \
[info] -Djavacmd=java \
[info] -Djavaccmd=javac \
[info] -Duser.language=en \
[info] -Duser.country=US \
[info] scala.tools.nsc.MainGenericRunner \
[info] -usejavacp \
[info] Test \
[info] jvm > t5610a-run.log
[info] % diff /Users/dark/workspace/dotty/tests/partest-generated/run/t5610a-run.log /Users/dark/workspace/dotty/tests/partest-generated/run/t5610a.check
[info] %
[info] @@ -1 +1 @@
[info] -Destroy ALL THE THINGS!!!
[info] +Stroke a kitten