aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/model/internal.scala
blob: bf50c0232ebf3f6cf2c2d8c80bdbd1470108dc8a (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package dotty.tools.dottydoc
package model

import comment.Comment
import references._
import dotty.tools.dotc.core.Symbols.{ Symbol, NoSymbol }

object internal {

  final case class PackageImpl(
    var symbol: Symbol,
    var annotations: List[String],
    var name: String,
    var members: List[Entity],
    var path: List[String],
    var superTypes: List[MaterializableLink] = Nil,
    var comment: Option[Comment] = None,
    var parent: Entity = NonEntity
  ) extends Package

  object EmptyPackage {
    def apply(path: List[String], name: String): PackageImpl = {
      PackageImpl(NoSymbol, Nil, name, Nil, path)
    }
  }

  final case class TypeAliasImpl (
    symbol: Symbol,
    annotations: List[String],
    modifiers: List[String],
    name: String,
    path: List[String],
    alias: Option[Reference],
    var comment: Option[Comment] = None,
    var parent: Entity = NonEntity
  ) extends TypeAlias

  final case class ClassImpl(
    symbol: Symbol,
    annotations: List[String],
    name: String,
    members: List[Entity],
    modifiers: List[String],
    path: List[String],
    typeParams: List[String] = Nil,
    constructors: List[List[ParamList]] = Nil,
    superTypes: List[MaterializableLink] = Nil,
    var comment: Option[Comment] = None,
    var companionPath: List[String] = Nil,
    var parent: Entity = NonEntity
  ) extends Class

  final case class CaseClassImpl(
    symbol: Symbol,
    annotations: List[String],
    name: String,
    members: List[Entity],
    modifiers: List[String],
    path: List[String],
    typeParams: List[String] = Nil,
    constructors: List[List[ParamList]] = Nil,
    superTypes: List[MaterializableLink] = Nil,
    var comment: Option[Comment] = None,
    var companionPath: List[String] = Nil,
    var parent: Entity = NonEntity
  ) extends CaseClass

  final case class TraitImpl(
    symbol: Symbol,
    annotations: List[String],
    name: String,
    members: List[Entity],
    modifiers: List[String],
    path: List[String],
    typeParams: List[String] = Nil,
    traitParams: List[ParamList] = Nil,
    superTypes: List[MaterializableLink] = Nil,
    var comment: Option[Comment] = None,
    var companionPath: List[String] = Nil,
    var parent: Entity = NonEntity
  ) extends Trait

  final case class ObjectImpl(
    symbol: Symbol,
    annotations: List[String],
    name: String,
    members: List[Entity],
    modifiers: List[String],
    path: List[String],
    superTypes: List[MaterializableLink] = Nil,
    var comment: Option[Comment] = None,
    var companionPath: List[String] = Nil,
    var parent: Entity = NonEntity
  ) extends Object

  final case class DefImpl(
    symbol: Symbol,
    annotations: List[String],
    name: String,
    modifiers: List[String],
    path: List[String],
    returnValue: Reference,
    typeParams: List[String] = Nil,
    paramLists: List[ParamList] = Nil,
    var comment: Option[Comment] = None,
    implicitlyAddedFrom: Option[Reference] = None,
    var parent: Entity = NonEntity
  ) extends Def

  final case class ValImpl(
    symbol: Symbol,
    annotations: List[String],
    name: String,
    modifiers: List[String],
    path: List[String],
    returnValue: Reference,
    kind: String,
    var comment: Option[Comment] = None,
    implicitlyAddedFrom: Option[Reference] = None,
    var parent: Entity = NonEntity
  ) extends Val

  final case class ParamListImpl(
    list: List[NamedReference],
    isImplicit: Boolean
  ) extends ParamList
}