diff --git a/scaladoc-testcases/src/tests/methodsAndConstructors.scala b/scaladoc-testcases/src/tests/methodsAndConstructors.scala index d0f3386730bc..b8925c593b4c 100644 --- a/scaladoc-testcases/src/tests/methodsAndConstructors.scala +++ b/scaladoc-testcases/src/tests/methodsAndConstructors.scala @@ -54,3 +54,9 @@ class Methods: def ++:(a: Int)(b: Double): Int = ??? + def withImplicitParam(implicit a: Int): Int + = ??? + + def withImplicitParam2(v: String)(implicit ab: Double, a: Int, b: String): String + = ??? + diff --git a/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala b/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala index 3076b084ff07..bcb87f2d5428 100644 --- a/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala +++ b/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala @@ -34,7 +34,7 @@ trait ClassLikeSupport: .filter(s => s.exists && !s.isHiddenByVisibility) .map( _.tree.asInstanceOf[DefDef]) constr.fold(Nil)( - _.termParamss.map(pList => ParametersList(pList.params.map(mkParameter(_, parameterModifier)), if isUsingModifier(pList.params) then "using " else "")) + _.termParamss.map(pList => ParametersList(pList.params.map(p => mkParameter(p, parameterModifier)), paramListModifier(pList.params))) ) if classDef.symbol.flags.is(Flags.Module) then Kind.Object @@ -344,7 +344,7 @@ trait ClassLikeSupport: val basicKind: Kind.Def = Kind.Def( genericTypes.map(mkTypeArgument(_, memberInfo.genericTypes)), paramLists.zipWithIndex.map { (pList, index) => - ParametersList(pList.params.map(mkParameter(_, paramPrefix, memberInfo = memberInfo.paramLists(index))), if isUsingModifier(pList.params) then "using " else "") + ParametersList(pList.params.map(mkParameter(_, paramPrefix, memberInfo = memberInfo.paramLists(index))), paramListModifier(pList.params)) } ) @@ -474,5 +474,9 @@ trait ClassLikeSupport: recursivelyCalculateMemberInfo(MemberInfo(Map.empty, List.empty, baseTypeRepr)) - private def isUsingModifier(parameters: Seq[ValDef]): Boolean = - parameters.size > 0 && parameters(0).symbol.flags.is(Flags.Given) + private def paramListModifier(parameters: Seq[ValDef]): String = + if parameters.size > 0 then + if parameters(0).symbol.flags.is(Flags.Given) then "using " + else if parameters(0).symbol.flags.is(Flags.Implicit) then "implicit " + else "" + else "" \ No newline at end of file