@@ -122,7 +122,7 @@ trait ClassLikeSupport:
122
122
private def isDocumentableExtension (s : Symbol ) =
123
123
! s.isHiddenByVisibility && ! s.isSyntheticFunc && s.isExtensionMethod
124
124
125
- private def parseMember (s : Tree ): Option [Member ] = processTreeOpt(s)(s match
125
+ private def parseMember (c : ClassDef )( s : Tree ): Option [Member ] = processTreeOpt(s)(s match
126
126
case dd : DefDef if isDocumentableExtension(dd.symbol) =>
127
127
dd.symbol.extendedSymbol.map { extSym =>
128
128
val target = ExtensionTarget (
@@ -131,14 +131,14 @@ trait ClassLikeSupport:
131
131
extSym.tpt.symbol.dri,
132
132
extSym.symbol.pos.get.start
133
133
)
134
- parseMethod(dd.symbol,specificKind = Kind .Extension (target, _))
134
+ parseMethod(c, dd.symbol,specificKind = Kind .Extension (target, _))
135
135
}
136
136
// TODO check given methods?
137
137
case dd : DefDef if ! dd.symbol.isHiddenByVisibility && dd.symbol.isGiven =>
138
138
Some (dd.symbol.owner.memberType(dd.name))
139
139
.filterNot(_.exists)
140
140
.map { _ =>
141
- parseMethod(dd.symbol, specificKind =
141
+ parseMethod(c, dd.symbol, specificKind =
142
142
Kind .Given (_, getGivenInstance(dd).map(_.asSignature), None )
143
143
)
144
144
}
@@ -157,11 +157,11 @@ trait ClassLikeSupport:
157
157
case s : Select if s.symbol.isDefDef => s.symbol.dri
158
158
}.orElse(exportedTarget.map(_.qualifier.tpe.typeSymbol.dri))
159
159
160
- Some (parseMethod(dd.symbol, specificKind = Kind .Exported (_))
160
+ Some (parseMethod(c, dd.symbol, specificKind = Kind .Exported (_))
161
161
.withOrigin(Origin .ExportedFrom (s " $instanceName. $functionName" , dri)))
162
162
163
163
case dd : DefDef if ! dd.symbol.isHiddenByVisibility && ! dd.symbol.isGiven && ! dd.symbol.isSyntheticFunc && ! dd.symbol.isExtensionMethod =>
164
- Some (parseMethod(dd.symbol))
164
+ Some (parseMethod(c, dd.symbol))
165
165
166
166
case td : TypeDef if ! td.symbol.flags.is(Flags .Synthetic ) && (! td.symbol.flags.is(Flags .Case ) || ! td.symbol.flags.is(Flags .Enum )) =>
167
167
Some (parseTypeDef(td))
@@ -207,9 +207,9 @@ trait ClassLikeSupport:
207
207
)
208
208
}
209
209
210
- private def parseInheritedMember (s : Tree ): Option [Member ] = processTreeOpt(s)(s match
210
+ private def parseInheritedMember (c : ClassDef )( s : Tree ): Option [Member ] = processTreeOpt(s)(s match
211
211
case c : ClassDef if c.symbol.shouldDocumentClasslike && ! c.symbol.isGiven => Some (parseClasslike(c, signatureOnly = true ))
212
- case other => parseMember(other)
212
+ case other => parseMember(c)( other)
213
213
).map(_.withInheritedFrom(InheritedFrom (s.symbol.owner.normalizedName, s.symbol.owner.dri)))
214
214
215
215
extension (c : ClassDef )
@@ -225,8 +225,8 @@ trait ClassLikeSupport:
225
225
case dd : DefDef if ! dd.symbol.isClassConstructor && ! (dd.symbol.isSuperBridgeMethod || dd.symbol.isDefaultHelperMethod) => dd
226
226
case other => other
227
227
}
228
- c.membersToDocument.flatMap(parseMember) ++
229
- inherited.flatMap(s => parseInheritedMember(s))
228
+ c.membersToDocument.flatMap(parseMember(c) ) ++
229
+ inherited.flatMap(s => parseInheritedMember(c)( s))
230
230
}
231
231
232
232
/** Extracts members while taking Dotty logic for patching the stdlib into account. */
@@ -237,7 +237,7 @@ trait ClassLikeSupport:
237
237
val ownMemberDRIs = ownMembers.iterator.map(_.name).toSet + " experimental$"
238
238
sym.tree.asInstanceOf [ClassDef ]
239
239
.membersToDocument.filterNot(m => ownMemberDRIs.contains(m.symbol.name))
240
- .flatMap(parseMember)
240
+ .flatMap(parseMember(c) )
241
241
}
242
242
c.symbol.fullName match {
243
243
case " scala.Predef$" =>
@@ -318,6 +318,7 @@ trait ClassLikeSupport:
318
318
classlikie.withNewMembers(cases).asInstanceOf [DClass ]
319
319
320
320
def parseMethod (
321
+ c : ClassDef ,
321
322
methodSymbol : Symbol ,
322
323
emptyParamsList : Boolean = false ,
323
324
paramPrefix : Symbol => String = _ => " " ,
@@ -357,6 +358,12 @@ trait ClassLikeSupport:
357
358
val origin = if ! methodSymbol.isOverriden then Origin .RegularlyDefined else
358
359
val overridenSyms = methodSymbol.allOverriddenSymbols.map(_.owner)
359
360
Origin .Overrides (overridenSyms.map(s => Overriden (s.name, s.dri)).toSeq)
361
+ if (methodSymbol.normalizedName == " fun" && c.symbol.normalizedName == " CClass" )
362
+ println(method.returnTpt)
363
+ println(typeForClass(c).asInstanceOf [dotty.tools.dotc.core.Types .Type ]
364
+ .memberInfo(methodSymbol.asInstanceOf [dotty.tools.dotc.core.Symbols .Symbol ])(using qctx.asInstanceOf [scala.quoted.runtime.impl.QuotesImpl ].ctx)
365
+ )
366
+
360
367
361
368
mkMember(
362
369
method.symbol,
0 commit comments