summaryrefslogtreecommitdiff
path: root/test/files/neg/t6535.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-12-04 00:24:42 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-12-04 10:07:15 +0100
commit8a1f85d521399be9141db1da2b0d2bd67cfb39e9 (patch)
tree40307e4fc4824c10d8a712d852d370279aefddfd /test/files/neg/t6535.scala
parentfd57069a3a49de1757a518b573a0cd8cb98bbbd5 (diff)
downloadscala-8a1f85d521399be9141db1da2b0d2bd67cfb39e9.tar.gz
scala-8a1f85d521399be9141db1da2b0d2bd67cfb39e9.tar.bz2
scala-8a1f85d521399be9141db1da2b0d2bd67cfb39e9.zip
SI-6535 Step back from the precipice of a cycle
Adding any non-local parent to WrapAsScala will trigger a valid cyclic reference error. By moving the import of `Wrapper._` inside `WrapAsScala` and `WrapAsJava`, it is not in scope when typing the parents of those, and we avoid the cycle. Adds a test case to show the essense of the promiscious mutual imports that triggers this.
Diffstat (limited to 'test/files/neg/t6535.scala')
-rw-r--r--test/files/neg/t6535.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/files/neg/t6535.scala b/test/files/neg/t6535.scala
new file mode 100644
index 0000000000..30a750311c
--- /dev/null
+++ b/test/files/neg/t6535.scala
@@ -0,0 +1,15 @@
+object As {
+ import Bs.B._
+
+ object A
+ extends scala.AnyRef // needed for the cycle;
+ // replacing with a locally defined closs doesn't
+ // hit the locked import and hence doesn't cycle.
+}
+
+object Bs {
+ import As.A._
+
+ object B
+ extends scala.AnyRef // scala.Immutable, ...
+}