summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
Diffstat (limited to 'test/files')
-rw-r--r--test/files/jvm/serialization.scala26
-rw-r--r--test/files/pos/t1591_pos.scala7
-rw-r--r--test/files/pos/t1591b.scala13
-rw-r--r--test/files/run/t1591.check1
-rw-r--r--test/files/run/t1591.scala14
5 files changed, 61 insertions, 0 deletions
diff --git a/test/files/jvm/serialization.scala b/test/files/jvm/serialization.scala
index 06086f4038..b8656888c6 100644
--- a/test/files/jvm/serialization.scala
+++ b/test/files/jvm/serialization.scala
@@ -532,6 +532,31 @@ object Test6 {
}
//############################################################################
+// Nested objects cannot get readresolve automatically because after deserialization
+// they would be null (they are treated as lazy vals)
+@serializable
+class Outer {
+
+ @serializable
+ object Inner
+}
+
+object Test7 {
+ val x = new Outer
+ x.Inner // initialize
+ try {
+ val y:Outer = read(write(x))
+ if (y.Inner == null)
+ println("Inner object is null")
+ }
+ catch {
+ case e: Exception =>
+ println("Error in Test7: " + e)
+ }
+
+}
+
+//############################################################################
// Test code
object Test {
@@ -542,6 +567,7 @@ object Test {
Test4_xml
Test5
Test6
+ Test7
}
}
diff --git a/test/files/pos/t1591_pos.scala b/test/files/pos/t1591_pos.scala
new file mode 100644
index 0000000000..4f55d7ce19
--- /dev/null
+++ b/test/files/pos/t1591_pos.scala
@@ -0,0 +1,7 @@
+trait A
+
+object Test {
+ lazy val a = new A {
+ object Zenek
+ }
+}
diff --git a/test/files/pos/t1591b.scala b/test/files/pos/t1591b.scala
new file mode 100644
index 0000000000..c671ad6472
--- /dev/null
+++ b/test/files/pos/t1591b.scala
@@ -0,0 +1,13 @@
+import scala.tools.nsc._
+
+class SemanticTokens(val compiler: Global) {
+ import compiler._
+
+ def build() = ErrorType
+
+ class Process {
+ def f() = analyzer
+ // or to crash the compiler instead of a nice message,
+ // def f() = analyzer underlying _
+ }
+}
diff --git a/test/files/run/t1591.check b/test/files/run/t1591.check
new file mode 100644
index 0000000000..48082f72f0
--- /dev/null
+++ b/test/files/run/t1591.check
@@ -0,0 +1 @@
+12
diff --git a/test/files/run/t1591.scala b/test/files/run/t1591.scala
new file mode 100644
index 0000000000..434064a5dd
--- /dev/null
+++ b/test/files/run/t1591.scala
@@ -0,0 +1,14 @@
+abstract class A {
+
+ lazy val lazyBar = bar
+
+ object bar {
+ val foo = 12
+ }
+
+}
+
+object Test extends Application {
+ val a = new A{}
+ println(a.lazyBar.foo)
+}