@@ -254,8 +254,11 @@ trait ClassLikeSupport:
254
254
dd.symbol.extendedSymbol.map { extSym =>
255
255
val memberInfo = unwrapMemberInfo(c, dd.symbol)
256
256
val typeParams = dd.symbol.extendedTypeParams.map(mkTypeArgument(_, memberInfo.genericTypes))
257
- val termParams = dd.symbol.extendedTermParamLists.zipWithIndex.map { case (paramList, index) =>
258
- ParametersList (paramList.params.map(mkParameter(_, memberInfo = memberInfo.paramLists(index))), paramListModifier(paramList.params))
257
+ val termParams = dd.symbol.extendedTermParamLists.zipWithIndex.flatMap { case (paramList, index) =>
258
+ memberInfo.paramLists(index) match
259
+ case EvidenceOnlyParameterList => Nil
260
+ case info : RegularParameterList =>
261
+ Seq (ParametersList (paramList.params.map(mkParameter(_, memberInfo = info)), paramListModifier(paramList.params)))
259
262
}
260
263
val target = ExtensionTarget (
261
264
extSym.symbol.normalizedName,
@@ -630,13 +633,13 @@ trait ClassLikeSupport:
630
633
def unwrapMemberInfo (c : ClassDef , symbol : Symbol ): MemberInfo =
631
634
val baseTypeRepr = memberInfo(c, symbol)
632
635
633
- def isSyntheticEvidence (name : String ) =
636
+ def isSyntheticEvidence (name : String ) =
634
637
if ! name.startsWith(NameKinds .EvidenceParamName .separator) then false else
635
638
// This assumes that every parameter that starts with `evidence$` and is implicit is generated by compiler to desugar context bound.
636
- // Howrever, this is just a heuristic, so
637
- // `def foo[A](evidence$1: ClassTag[A]) = 1`
639
+ // Howrever, this is just a heuristic, so
640
+ // `def foo[A](evidence$1: ClassTag[A]) = 1`
638
641
// will be documented as
639
- // `def foo[A: ClassTag] = 1`.
642
+ // `def foo[A: ClassTag] = 1`.
640
643
// Scala spec states that `$` should not be used in names and behaviour may be undefiend in such case.
641
644
// Documenting method slightly different then its definition is withing the 'undefiend behaviour'.
642
645
symbol.paramSymss.flatten.find(_.name == name).exists(_.flags.is(Flags .Implicit ))
@@ -647,7 +650,7 @@ trait ClassLikeSupport:
647
650
def handleMethodType (memberInfo : MemberInfo , methodType : MethodType ): MemberInfo =
648
651
val rawParams = methodType.paramNames.zip(methodType.paramTypes).toMap
649
652
val (evidences, notEvidences) = rawParams.partition(e => isSyntheticEvidence(e._1))
650
-
653
+
651
654
652
655
def findParamRefs (t : TypeRepr ): Seq [ParamRef ] = t match
653
656
case paramRef : ParamRef => Seq (paramRef)
@@ -665,7 +668,7 @@ trait ClassLikeSupport:
665
668
case (_, AppliedType (tpe, List (typeParam : ParamRef ))) =>
666
669
Right (nameForRef(typeParam) -> tpe.asSignature)
667
670
case (name, original) =>
668
- findParamRefs(original) match
671
+ findParamRefs(original) match
669
672
case Nil => Left ((name, original))
670
673
case typeParam :: _ =>
671
674
val name = nameForRef(typeParam)
0 commit comments