blob: 1c204662b263092ef15ec7503685dbf50d81e387 (
plain) (
blame)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
package dotty.tools.dottydoc
package model
import comment._
import references._
trait Entity {
def name: String
/** Path from root, i.e. `scala.Option$` */
def path: List[String]
def comment: Option[Comment]
def kind: String
def parent: Entity
/** All parents from package level i.e. Package to Object to Member etc */
def parents: List[Entity] = parent match {
case NonEntity => Nil
case e => e :: e.parents
}
/** Applies `f` to entity if != `NonEntity` */
def fold[A](nonEntity: A)(f: Entity => A) = this match {
case NonEntity => nonEntity
case x => f(x)
}
}
trait SuperTypes {
def superTypes: List[MaterializableLink]
}
trait Members {
def members: List[Entity]
}
trait Modifiers {
def modifiers: List[String]
val isPrivate: Boolean =
modifiers.contains("private")
}
trait TypeParams {
def typeParams: List[String]
}
trait ReturnValue {
def returnValue: Reference
}
trait ParamList {
def list: List[NamedReference]
def isImplicit: Boolean
}
trait Package extends Entity with Members {
val kind = "package"
def children: List[Entity with Members]
}
trait Class extends Entity with Modifiers with TypeParams with SuperTypes with Members {
val kind = "class"
}
trait CaseClass extends Entity with Modifiers with TypeParams with SuperTypes with Members {
override val kind = "case class"
}
trait Trait extends Entity with Modifiers with TypeParams with SuperTypes with Members {
override val kind = "trait"
}
trait Object extends Entity with Modifiers with SuperTypes with Members {
override val kind = "object"
}
trait Def extends Entity with Modifiers with TypeParams with ReturnValue {
val kind = "def"
def paramLists: List[ParamList]
def implicitlyAddedFrom: Option[Reference]
}
trait Val extends Entity with Modifiers with ReturnValue {
val kind = "val"
def implicitlyAddedFrom: Option[Reference]
}
trait Var extends Entity with Modifiers with ReturnValue {
val kind = "var"
}
trait NonEntity extends Entity {
val name = ""
val comment = None
val path = Nil
val kind = ""
val parent = NonEntity
}
final case object NonEntity extends NonEntity
final case object RootEntity extends NonEntity {
override val name = "root"
}
|