@@ -99,6 +99,7 @@ trait InkuireSupport:
99
99
Some (classType)
100
100
.filter(_ => ! isModule)
101
101
.orElse(methodSymbol.extendedSymbol.flatMap(s => partialAsInkuire(vars).lift(s.tpt)))
102
+ val (name, ownerName) = nameAndOwnerName(classDef, methodSymbol)
102
103
val sgn = Inkuire .ExternalSignature (
103
104
signature = Inkuire .Signature (
104
105
receiver = receiver,
@@ -111,8 +112,8 @@ trait InkuireSupport:
111
112
constraints = Map .empty // TODO [Inkuire] Type bounds
112
113
)
113
114
),
114
- name = methodSymbol. name,
115
- packageName = methodSymbol.dri.location ,
115
+ name = name,
116
+ packageName = ownerName ,
116
117
uri = methodSymbol.dri.externalLink.getOrElse(" " ),
117
118
entryType = " def"
118
119
)
@@ -128,6 +129,7 @@ trait InkuireSupport:
128
129
val receiver : Option [Inkuire .TypeLike ] =
129
130
Some (classType)
130
131
.filter(_ => ! isModule)
132
+ val (name, ownerName) = nameAndOwnerName(classDef, valSymbol)
131
133
val sgn = Inkuire .ExternalSignature (
132
134
signature = Inkuire .Signature (
133
135
receiver = receiver,
@@ -138,8 +140,8 @@ trait InkuireSupport:
138
140
constraints = Map .empty // TODO [Inkuire] Type bounds
139
141
)
140
142
),
141
- name = valSymbol. name,
142
- packageName = valSymbol.dri.location ,
143
+ name = name,
144
+ packageName = ownerName ,
143
145
uri = valSymbol.dri.externalLink.getOrElse(" " ),
144
146
entryType = " val"
145
147
)
@@ -148,6 +150,26 @@ trait InkuireSupport:
148
150
}
149
151
}
150
152
153
+ private def nameAndOwnerName (classDef : ClassDef , symbol : Symbol ): (String , String ) =
154
+ if classDef.symbol.flags.is(Flags .Module )
155
+ && (classDef.symbol.companionClass != Symbol .noSymbol || (Seq (" apply" , " unapply" ).contains(symbol.name))) then
156
+ (
157
+ symbol.maybeOwner.normalizedName + " ." + symbol.name,
158
+ ownerNameChain(classDef.symbol.maybeOwner).mkString(" ." )
159
+ )
160
+ else
161
+ (
162
+ symbol.name,
163
+ ownerNameChain(classDef.symbol).mkString(" ." )
164
+ )
165
+
166
+ def ownerNameChain (sym : Symbol ): List [String ] =
167
+ if sym.isNoSymbol then List .empty
168
+ else if sym == defn.EmptyPackageClass then List .empty
169
+ else if sym == defn.RootPackage then List .empty
170
+ else if sym == defn.RootClass then List .empty
171
+ else ownerNameChain(sym.owner) :+ sym.normalizedName
172
+
151
173
private def paramsForClass (classDef : ClassDef , vars : Set [String ]): Seq [Inkuire .Variance ] =
152
174
classDef.getTypeParams.map(mkTypeArgumentInkuire)
153
175
0 commit comments