@@ -158,7 +158,7 @@ object SourceCode {
158158 for paramClause <- paramss do
159159 paramClause match
160160 case TermParamClause (params) =>
161- printArgsDefs (params)
161+ printMethdArgsDefs (params)
162162 case TypeParamClause (params) =>
163163 printTargsDefs(stats.collect { case targ : TypeDef => targ }.filter(_.symbol.isTypeParam).zip(params))
164164 }
@@ -313,7 +313,7 @@ object SourceCode {
313313 this += highlightKeyword(" def " ) += highlightValDef(name1)
314314 for clause <- paramss do
315315 clause match
316- case TermParamClause (params) => printArgsDefs (params)
316+ case TermParamClause (params) => printMethdArgsDefs (params)
317317 case TypeParamClause (params) => printTargsDefs(params.zip(params))
318318 if (! isConstructor) {
319319 this += " : "
@@ -460,7 +460,7 @@ object SourceCode {
460460
461461 case tree @ Lambda (params, body) => // must come before `Block`
462462 inParens {
463- printArgsDefs (params)
463+ printLambdaArgsDefs (params)
464464 this += (if tree.tpe.isContextFunctionType then " ?=> " else " => " )
465465 printTree(body)
466466 }
@@ -804,29 +804,37 @@ object SourceCode {
804804 }
805805 }
806806
807- private def printArgsDefs (args : List [ValDef ])(using elideThis : Option [Symbol ]): Unit = {
807+ private def printSeparatedParamDefs (list : List [ValDef ])(using elideThis : Option [Symbol ]): Unit = list match {
808+ case Nil =>
809+ case x :: Nil => printParamDef(x)
810+ case x :: xs =>
811+ printParamDef(x)
812+ this += " , "
813+ printSeparatedParamDefs(xs)
814+ }
815+
816+ private def printMethdArgsDefs (args : List [ValDef ])(using elideThis : Option [Symbol ]): Unit = {
808817 val argFlags = args match {
809818 case Nil => Flags .EmptyFlags
810819 case arg :: _ => arg.symbol.flags
811820 }
812- if (argFlags.is(Flags .Erased | Flags .Given )) {
813- if (argFlags.is(Flags .Given )) this += " given"
814- if (argFlags.is(Flags .Erased )) this += " erased"
815- this += " "
816- }
817821 inParens {
818822 if (argFlags.is(Flags .Implicit ) && ! argFlags.is(Flags .Given )) this += " implicit "
823+ if (argFlags.is(Flags .Given )) this += " using "
819824
820- def printSeparated (list : List [ValDef ]): Unit = list match {
821- case Nil =>
822- case x :: Nil => printParamDef(x)
823- case x :: xs =>
824- printParamDef(x)
825- this += " , "
826- printSeparated(xs)
827- }
825+ printSeparatedParamDefs(args)
826+ }
827+ }
828+
829+ private def printLambdaArgsDefs (args : List [ValDef ])(using elideThis : Option [Symbol ]): Unit = {
830+ val argFlags = args match {
831+ case Nil => Flags .EmptyFlags
832+ case arg :: _ => arg.symbol.flags
833+ }
834+ inParens {
835+ if (argFlags.is(Flags .Implicit ) && ! argFlags.is(Flags .Given )) this += " implicit "
828836
829- printSeparated (args)
837+ printSeparatedParamDefs (args)
830838 }
831839 }
832840
@@ -846,6 +854,9 @@ object SourceCode {
846854 private def printParamDef (arg : ValDef )(using elideThis : Option [Symbol ]): Unit = {
847855 val name = splicedName(arg.symbol).getOrElse(arg.symbol.name)
848856 val sym = arg.symbol.owner
857+
858+ if (arg.symbol.flags.is(Flags .Erased )) this += " erased "
859+
849860 if sym.isDefDef && sym.name == " <init>" then
850861 val ClassDef (_, _, _, _, body) = sym.owner.tree: @ unchecked
851862 body.collectFirst {
0 commit comments