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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
package dotty.tools
package dottydoc
import org.junit.Test
import org.junit.Assert._
import dotc.util.SourceFile
import model.internal._
class PackageStructure extends DottyTest {
@Test def multipleCompilationUnits = {
val source1 = new SourceFile(
"TraitA.scala",
"""
|package scala
|
|trait A
""".stripMargin
)
val source2 = new SourceFile(
"TraitB.scala",
"""
|package scala
|
|trait B
""".stripMargin
)
checkSources(source1 :: source2 :: Nil) { packages =>
packages("scala") match {
case PackageImpl(_, _, List(tA, tB), _, _) =>
assert(
tA.name == "A" && tB.name == "B",
s"trait A had name '${tA.name}' and trait B had name '${tB.name}'"
)
case _ => fail("Incorrect package structure after run")
}
}
}
@Test def multiplePackages = {
val source1 = new SourceFile(
"TraitA.scala",
"""
|package scala
|package collection
|
|trait A
""".stripMargin)
val source2 = new SourceFile(
"TraitB.scala",
"""
|package scala
|package collection
|
|trait B
""".stripMargin)
checkSources(source1 :: source2 :: Nil) { packages =>
packages("scala") match {
case PackageImpl(
_,
"scala",
List(PackageImpl(_, "scala.collection", List(tA, tB), _, _)),
_, _
) =>
assert(
tA.name == "A" && tB.name == "B",
s"trait A had name '${tA.name}' and trait B had name '${tB.name}'"
)
case _ =>
fail(s"""Incorrect package structure for 'scala' package: ${packages("scala")}""")
}
packages("scala.collection") match {
case PackageImpl(_, "scala.collection", List(tA, tB), _, _) =>
assert(
tA.name == "A" && tB.name == "B",
s"trait A had name '${tA.name}' and trait B had name '${tB.name}'"
)
case _ => fail("Incorrect package structure for 'scala.collection' package")
}
}
}
}
|