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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
import scala.tools.partest._
import scala.tools.nsc._
object Test extends DirectTest {
override def extraSettings: String = "-usejavacp -nowarn -Ystop-after:typer"
override def code = "" // not used
def code1 = """
package object p1 {
trait A
object A
}
"""
def code2 = """
package object p2 {
class A
object A
}
"""
def code3 = """
package object p3 {
object A
trait A
}
"""
def code4 = """
package object p4 {
object A
trait A
}
"""
def show() {
val global = newCompiler()
import global._
def typecheck(code: String): Unit = {
val r = new Run
val sourceFile = newSources(code).head
global.reporter.reset()
r.compileSources(sourceFile :: Nil)
assert(!global.reporter.hasErrors)
}
def typecheckTwice(code: String): Unit = {
typecheck(code)
typecheck(code)
}
// was: illegal cyclic reference involving package ...
Seq(code1, code2, code3, code4) foreach typecheckTwice
}
}
|