aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/singletons.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/singletons.scala')
-rw-r--r--tests/pos/singletons.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/pos/singletons.scala b/tests/pos/singletons.scala
new file mode 100644
index 000000000..55f9b5ecb
--- /dev/null
+++ b/tests/pos/singletons.scala
@@ -0,0 +1,40 @@
+
+object Test {
+
+ val x: 1 = 1
+ final val y = x
+ val z: 1 = y
+
+ object O { final val x = 42 }
+ val fourtyTwo: 42 = O.x
+
+ final val a = { println("x"); 2 } // side effects don't matter
+ val b: 2 = a
+
+ def f: 3 = 3
+ val c = f
+
+}
+/* To do: test that after erasure we have generated code like this:
+ *
+package <empty> {
+ final lazy module val Test: Test$ = new Test$()
+ final module class Test$() extends Object() { this: <notype> =>
+ <accessor> def x(): Int = 1
+ final <accessor> def y(): Int = 1
+ <accessor> def z(): Int = 1
+ final lazy module val O: Test.O$ = new Test.O$()
+ final module class O$() extends Object() { this: <notype> =>
+ final <accessor> def x(): Int = 42
+ }
+ <accessor> def fourtyTwo(): Int = 42
+ final <accessor> def a(): Int = {
+ println("x")
+ 2
+ }
+ <accessor> def b(): Int = 2
+ def f(): Int = 3
+ <accessor> def c(): Int = Test.f()
+ }
+}
+*/