diff options
author | Martin Odersky <odersky@gmail.com> | 2006-10-30 13:00:41 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-10-30 13:00:41 +0000 |
commit | 640ecf38b7125ff0d2c926a9a634593640cd95b1 (patch) | |
tree | 3f5aecd3a80d0ca2c02e3b92079ba0a0a34825b0 /test/files/neg/bug783.scala | |
parent | f28285cee74e3f5da3bee5bdd18969566b75f736 (diff) | |
download | scala-640ecf38b7125ff0d2c926a9a634593640cd95b1.tar.gz scala-640ecf38b7125ff0d2c926a9a634593640cd95b1.tar.bz2 scala-640ecf38b7125ff0d2c926a9a634593640cd95b1.zip |
added healing for escaping singleton types.
fixed bug 397
Diffstat (limited to 'test/files/neg/bug783.scala')
-rw-r--r-- | test/files/neg/bug783.scala | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/files/neg/bug783.scala b/test/files/neg/bug783.scala new file mode 100644 index 0000000000..0180d3d634 --- /dev/null +++ b/test/files/neg/bug783.scala @@ -0,0 +1,29 @@ +package test; + +object Main extends Application { + class Global { + case class Template(x : Int, y : Int) { + Console.println("outer: " + Global.this); + } + } + trait Contexts requires Analyzer { + val xxx : global.Template = { + assert(globalInit0 != null); + globalInit0.Template(10, 20); + } + } + abstract class Analyzer extends Contexts { + type Global <: Main.Global; + final val global : Global = globalInit; + def globalInit : Global; + final def globalInit0 = globalInit.asInstanceOf[global.type]; + } + + object global0 extends Global { + object analyzer extends Analyzer { + type Global = global0.type; + override def globalInit = global0; + } + } + Console.println(global0.analyzer.xxx); +} |