blob: 3818910b8e5259b0d514acb36f2add102c07e8b9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package test;
object Main extends Application {
class Global {
case class Template(x : Int, y : Int) {
Console.println("outer: " + Global.this);
}
}
trait Contexts { self: 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);
}
|