@@ -37,7 +37,7 @@ class ScalaSignatureProvider:
3737 case trt : Kind .Trait =>
3838 traitSignature(documentable, trt)
3939 case Kind .Val | Kind .Var | Kind .Implicit (Kind .Val , _) =>
40- fieldSignature(documentable, kind.name )
40+ fieldSignature(documentable, kind)
4141 case tpe : Kind .Type =>
4242 typeSignature(tpe, documentable)
4343 case Kind .Package =>
@@ -52,10 +52,10 @@ class ScalaSignatureProvider:
5252 case Kind .Unknown =>
5353 ???
5454
55- private def classLikeSignature (member : Member , kind : Classlike ): MemberSignature =
55+ private def classLikeSignature (member : Member , kind : Kind & Classlike )( showKind : Kind = kind ): MemberSignature =
5656 MemberSignature (
5757 builder.modifiersAndVisibility(member),
58- builder.kind(member ),
58+ builder.kind(showKind ),
5959 builder.name(member.name, member.dri),
6060 builder
6161 .generics(kind.typeParams)
@@ -65,7 +65,7 @@ class ScalaSignatureProvider:
6565
6666
6767 private def enumEntrySignature (member : Member , cls : Kind .Class ): MemberSignature =
68- classLikeSignature(member, cls)
68+ classLikeSignature(member, cls)()
6969
7070 private def enumPropertySignature (entry : Member ): MemberSignature =
7171 val modifiedType = entry.signature.map {
@@ -75,35 +75,35 @@ class ScalaSignatureProvider:
7575
7676 MemberSignature (
7777 builder.modifiersAndVisibility(entry),
78- builder.kind(entry),
78+ builder.kind(entry.kind ),
7979 builder.name(entry.name, entry.dri),
8080 builder.keyword(" extends " ).signature(modifiedType)
8181 )
8282
8383 private def givenClassSignature (member : Member , cls : Kind .Class ): MemberSignature =
84- val initialSignature = classLikeSignature(member, cls)
84+ val initialSignature = classLikeSignature(member, cls)(member.kind)
8585
8686 member.kind match
8787 case Kind .Given (_, Some (instance), _) => initialSignature
8888 .copy(suffix = initialSignature.suffix ++ builder.plain(" : " ).signature(instance))
8989 case _ => initialSignature
9090
9191 private def classSignature (clazz : Member , cls : Kind .Class ): MemberSignature =
92- classLikeSignature(clazz, cls)
92+ classLikeSignature(clazz, cls)()
9393
9494 private def objectSignature (clazz : Member ): MemberSignature =
95- classLikeSignature(clazz, Kind .Object )
95+ classLikeSignature(clazz, Kind .Object )()
9696
9797 private def traitSignature (clazz : Member , cls : Kind .Trait ): MemberSignature =
98- classLikeSignature(clazz, cls)
98+ classLikeSignature(clazz, cls)()
9999
100100 private def enumSignature (clazz : Member , cls : Kind .Enum ): MemberSignature =
101- classLikeSignature(clazz, cls)
101+ classLikeSignature(clazz, cls)()
102102
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 =
104104 MemberSignature (
105105 builder.modifiersAndVisibility(method),
106- builder.kind(method ),
106+ builder.kind(showKind ),
107107 builder.name(method.name, method.dri),
108108 builder
109109 .generics(kind.typeParams)
@@ -115,41 +115,41 @@ class ScalaSignatureProvider:
115115
116116 private def methodSignature (method : Member , cls : Kind .Def ): MemberSignature =
117117 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))()
120120 }
121121
122122 private def extensionSignature (extension : Member , fun : Kind .Def ): MemberSignature =
123- methodLikeSignature(extension, fun, Some (extension.signature))
123+ methodLikeSignature(extension, fun, Some (extension.signature))()
124124
125125 private def givenMethodSignature (method : Member , body : Kind .Def ): MemberSignature = method.kind match
126126 case Kind .Given (_, iOpt @ Some (instance), _) =>
127- methodLikeSignature(method, body, iOpt)
127+ methodLikeSignature(method, body, iOpt)(method.kind)
128128 case _ =>
129- methodLikeSignature(method, body)
129+ methodLikeSignature(method, body)(method.kind)
130130
131- private def fieldLikeSignature (member : Member , instance : Option [Signature ] = None ): MemberSignature =
131+ private def fieldLikeSignature (member : Member , kind : Kind , instance : Option [Signature ] = None ): MemberSignature =
132132 MemberSignature (
133133 builder.modifiersAndVisibility(member),
134- builder.kind(member ),
134+ builder.kind(kind ),
135135 builder.name(member.name, member.dri),
136136 instance.fold(builder)(i => builder.plain(" : " ).signature(i))
137137 )
138138
139139
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))
142142
143143 private def givenValSignature (field : Member ): MemberSignature = field.kind match
144144 case Kind .Given (_, iOpt @ Some (instance), _) =>
145- fieldLikeSignature(field, iOpt)
145+ fieldLikeSignature(field, field.kind, iOpt)
146146 case _ =>
147- fieldLikeSignature(field, None )
147+ fieldLikeSignature(field, field.kind, None )
148148
149149 private def typeSignature (tpe : Kind .Type , typeDef : Member ): MemberSignature =
150150 MemberSignature (
151151 builder.modifiersAndVisibility(typeDef),
152- builder.kind(typeDef ),
152+ builder.kind(tpe ),
153153 builder.name(typeDef.name, typeDef.dri),
154154 builder.generics(tpe.typeParams).pipe { bdr =>
155155 if (! tpe.opaque) {
0 commit comments