@@ -37,7 +37,7 @@ class ScalaSignatureProvider:
37
37
case trt : Kind .Trait =>
38
38
traitSignature(documentable, trt)
39
39
case Kind .Val | Kind .Var | Kind .Implicit (Kind .Val , _) =>
40
- fieldSignature(documentable, kind.name )
40
+ fieldSignature(documentable, kind)
41
41
case tpe : Kind .Type =>
42
42
typeSignature(tpe, documentable)
43
43
case Kind .Package =>
@@ -52,10 +52,10 @@ class ScalaSignatureProvider:
52
52
case Kind .Unknown =>
53
53
???
54
54
55
- private def classLikeSignature (member : Member , kind : Classlike ): MemberSignature =
55
+ private def classLikeSignature (member : Member , kind : Kind & Classlike )( showKind : Kind = kind ): MemberSignature =
56
56
MemberSignature (
57
57
builder.modifiersAndVisibility(member),
58
- builder.kind(member ),
58
+ builder.kind(showKind ),
59
59
builder.name(member.name, member.dri),
60
60
builder
61
61
.generics(kind.typeParams)
@@ -65,7 +65,7 @@ class ScalaSignatureProvider:
65
65
66
66
67
67
private def enumEntrySignature (member : Member , cls : Kind .Class ): MemberSignature =
68
- classLikeSignature(member, cls)
68
+ classLikeSignature(member, cls)()
69
69
70
70
private def enumPropertySignature (entry : Member ): MemberSignature =
71
71
val modifiedType = entry.signature.map {
@@ -75,35 +75,35 @@ class ScalaSignatureProvider:
75
75
76
76
MemberSignature (
77
77
builder.modifiersAndVisibility(entry),
78
- builder.kind(entry),
78
+ builder.kind(entry.kind ),
79
79
builder.name(entry.name, entry.dri),
80
80
builder.keyword(" extends " ).signature(modifiedType)
81
81
)
82
82
83
83
private def givenClassSignature (member : Member , cls : Kind .Class ): MemberSignature =
84
- val initialSignature = classLikeSignature(member, cls)
84
+ val initialSignature = classLikeSignature(member, cls)(member.kind)
85
85
86
86
member.kind match
87
87
case Kind .Given (_, Some (instance), _) => initialSignature
88
88
.copy(suffix = initialSignature.suffix ++ builder.plain(" : " ).signature(instance))
89
89
case _ => initialSignature
90
90
91
91
private def classSignature (clazz : Member , cls : Kind .Class ): MemberSignature =
92
- classLikeSignature(clazz, cls)
92
+ classLikeSignature(clazz, cls)()
93
93
94
94
private def objectSignature (clazz : Member ): MemberSignature =
95
- classLikeSignature(clazz, Kind .Object )
95
+ classLikeSignature(clazz, Kind .Object )()
96
96
97
97
private def traitSignature (clazz : Member , cls : Kind .Trait ): MemberSignature =
98
- classLikeSignature(clazz, cls)
98
+ classLikeSignature(clazz, cls)()
99
99
100
100
private def enumSignature (clazz : Member , cls : Kind .Enum ): MemberSignature =
101
- classLikeSignature(clazz, cls)
101
+ classLikeSignature(clazz, cls)()
102
102
103
- private def methodLikeSignature (method : Member , kind : Kind .Def , instance : Option [Signature ] = None ): MemberSignature =
103
+ private def methodLikeSignature (method : Member , kind : Kind .Def , instance : Option [Signature ] = None )( showKind : Kind = kind) : MemberSignature =
104
104
MemberSignature (
105
105
builder.modifiersAndVisibility(method),
106
- builder.kind(method ),
106
+ builder.kind(showKind ),
107
107
builder.name(method.name, method.dri),
108
108
builder
109
109
.generics(kind.typeParams)
@@ -115,41 +115,41 @@ class ScalaSignatureProvider:
115
115
116
116
private def methodSignature (method : Member , cls : Kind .Def ): MemberSignature =
117
117
method.kind match {
118
- case _ : Kind .Constructor => methodLikeSignature(method, cls, None )
119
- case _ => methodLikeSignature(method, cls, Some (method.signature))
118
+ case _ : Kind .Constructor => methodLikeSignature(method, cls, None )()
119
+ case _ => methodLikeSignature(method, cls, Some (method.signature))()
120
120
}
121
121
122
122
private def extensionSignature (extension : Member , fun : Kind .Def ): MemberSignature =
123
- methodLikeSignature(extension, fun, Some (extension.signature))
123
+ methodLikeSignature(extension, fun, Some (extension.signature))()
124
124
125
125
private def givenMethodSignature (method : Member , body : Kind .Def ): MemberSignature = method.kind match
126
126
case Kind .Given (_, iOpt @ Some (instance), _) =>
127
- methodLikeSignature(method, body, iOpt)
127
+ methodLikeSignature(method, body, iOpt)(method.kind)
128
128
case _ =>
129
- methodLikeSignature(method, body)
129
+ methodLikeSignature(method, body)(method.kind)
130
130
131
- private def fieldLikeSignature (member : Member , instance : Option [Signature ] = None ): MemberSignature =
131
+ private def fieldLikeSignature (member : Member , kind : Kind , instance : Option [Signature ] = None ): MemberSignature =
132
132
MemberSignature (
133
133
builder.modifiersAndVisibility(member),
134
- builder.kind(member ),
134
+ builder.kind(kind ),
135
135
builder.name(member.name, member.dri),
136
136
instance.fold(builder)(i => builder.plain(" : " ).signature(i))
137
137
)
138
138
139
139
140
- private def fieldSignature (member : Member , kind : String ): MemberSignature =
141
- fieldLikeSignature(member, Some (member.signature))
140
+ private def fieldSignature (member : Member , kind : Kind ): MemberSignature =
141
+ fieldLikeSignature(member, kind, Some (member.signature))
142
142
143
143
private def givenValSignature (field : Member ): MemberSignature = field.kind match
144
144
case Kind .Given (_, iOpt @ Some (instance), _) =>
145
- fieldLikeSignature(field, iOpt)
145
+ fieldLikeSignature(field, field.kind, iOpt)
146
146
case _ =>
147
- fieldLikeSignature(field, None )
147
+ fieldLikeSignature(field, field.kind, None )
148
148
149
149
private def typeSignature (tpe : Kind .Type , typeDef : Member ): MemberSignature =
150
150
MemberSignature (
151
151
builder.modifiersAndVisibility(typeDef),
152
- builder.kind(typeDef ),
152
+ builder.kind(tpe ),
153
153
builder.name(typeDef.name, typeDef.dri),
154
154
builder.generics(tpe.typeParams).pipe { bdr =>
155
155
if (! tpe.opaque) {
0 commit comments