@@ -122,7 +122,7 @@ trait ClassLikeSupport:
122122 private def isDocumentableExtension (s : Symbol ) =
123123 ! s.isHiddenByVisibility && ! s.isSyntheticFunc && s.isExtensionMethod
124124
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
126126 case dd : DefDef if isDocumentableExtension(dd.symbol) =>
127127 dd.symbol.extendedSymbol.map { extSym =>
128128 val target = ExtensionTarget (
@@ -131,14 +131,14 @@ trait ClassLikeSupport:
131131 extSym.tpt.symbol.dri,
132132 extSym.symbol.pos.get.start
133133 )
134- parseMethod(dd.symbol,specificKind = Kind .Extension (target, _))
134+ parseMethod(c, dd.symbol,specificKind = Kind .Extension (target, _))
135135 }
136136 // TODO check given methods?
137137 case dd : DefDef if ! dd.symbol.isHiddenByVisibility && dd.symbol.isGiven =>
138138 Some (dd.symbol.owner.memberType(dd.name))
139139 .filterNot(_.exists)
140140 .map { _ =>
141- parseMethod(dd.symbol, specificKind =
141+ parseMethod(c, dd.symbol, specificKind =
142142 Kind .Given (_, getGivenInstance(dd).map(_.asSignature), None )
143143 )
144144 }
@@ -157,11 +157,11 @@ trait ClassLikeSupport:
157157 case s : Select if s.symbol.isDefDef => s.symbol.dri
158158 }.orElse(exportedTarget.map(_.qualifier.tpe.typeSymbol.dri))
159159
160- Some (parseMethod(dd.symbol, specificKind = Kind .Exported (_))
160+ Some (parseMethod(c, dd.symbol, specificKind = Kind .Exported (_))
161161 .withOrigin(Origin .ExportedFrom (s " $instanceName. $functionName" , dri)))
162162
163163 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))
165165
166166 case td : TypeDef if ! td.symbol.flags.is(Flags .Synthetic ) && (! td.symbol.flags.is(Flags .Case ) || ! td.symbol.flags.is(Flags .Enum )) =>
167167 Some (parseTypeDef(td))
@@ -207,9 +207,9 @@ trait ClassLikeSupport:
207207 )
208208 }
209209
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
211211 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)
213213 ).map(_.withInheritedFrom(InheritedFrom (s.symbol.owner.normalizedName, s.symbol.owner.dri)))
214214
215215 extension (c : ClassDef )
@@ -225,8 +225,8 @@ trait ClassLikeSupport:
225225 case dd : DefDef if ! dd.symbol.isClassConstructor && ! (dd.symbol.isSuperBridgeMethod || dd.symbol.isDefaultHelperMethod) => dd
226226 case other => other
227227 }
228- c.membersToDocument.flatMap(parseMember) ++
229- inherited.flatMap(s => parseInheritedMember(s))
228+ c.membersToDocument.flatMap(parseMember(c) ) ++
229+ inherited.flatMap(s => parseInheritedMember(c)( s))
230230 }
231231
232232 /** Extracts members while taking Dotty logic for patching the stdlib into account. */
@@ -237,7 +237,7 @@ trait ClassLikeSupport:
237237 val ownMemberDRIs = ownMembers.iterator.map(_.name).toSet + " experimental$"
238238 sym.tree.asInstanceOf [ClassDef ]
239239 .membersToDocument.filterNot(m => ownMemberDRIs.contains(m.symbol.name))
240- .flatMap(parseMember)
240+ .flatMap(parseMember(c) )
241241 }
242242 c.symbol.fullName match {
243243 case " scala.Predef$" =>
@@ -318,6 +318,7 @@ trait ClassLikeSupport:
318318 classlikie.withNewMembers(cases).asInstanceOf [DClass ]
319319
320320 def parseMethod (
321+ c : ClassDef ,
321322 methodSymbol : Symbol ,
322323 emptyParamsList : Boolean = false ,
323324 paramPrefix : Symbol => String = _ => " " ,
@@ -357,6 +358,12 @@ trait ClassLikeSupport:
357358 val origin = if ! methodSymbol.isOverriden then Origin .RegularlyDefined else
358359 val overridenSyms = methodSymbol.allOverriddenSymbols.map(_.owner)
359360 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+
360367
361368 mkMember(
362369 method.symbol,
0 commit comments