diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-12-04 00:24:42 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-12-04 10:07:15 +0100 |
commit | 8a1f85d521399be9141db1da2b0d2bd67cfb39e9 (patch) | |
tree | 40307e4fc4824c10d8a712d852d370279aefddfd /test | |
parent | fd57069a3a49de1757a518b573a0cd8cb98bbbd5 (diff) | |
download | scala-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')
-rw-r--r-- | test/files/neg/t6535.check | 6 | ||||
-rw-r--r-- | test/files/neg/t6535.scala | 15 |
2 files changed, 21 insertions, 0 deletions
diff --git a/test/files/neg/t6535.check b/test/files/neg/t6535.check new file mode 100644 index 0000000000..1225ea70db --- /dev/null +++ b/test/files/neg/t6535.check @@ -0,0 +1,6 @@ +t6535.scala:2: error: encountered unrecoverable cycle resolving import. +Note: this is often due in part to a class depending on a definition nested within its companion. +If applicable, you may wish to try moving some members into another object. + import Bs.B._ + ^ +one error found 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, ... +} |