@@ -6,7 +6,7 @@ object references {
66 final case class TypeReference (title : String , tpeLink : MaterializableLink , paramLinks : List [Reference ]) extends Reference
77 final case class OrTypeReference (left : Reference , right : Reference ) extends Reference
88 final case class AndTypeReference (left : Reference , right : Reference ) extends Reference
9- final case class FunctionReference (args : List [Reference ], returnValue : Reference ) extends Reference
9+ final case class FunctionReference (args : List [Reference ], returnValue : Reference , isImplicit : Boolean ) extends Reference
1010 final case class TupleReference (args : List [Reference ]) extends Reference
1111 final case class BoundsReference (low : Reference , high : Reference ) extends Reference
1212 final case class NamedReference (title : String , ref : Reference , isByName : Boolean = false , isRepeated : Boolean = false ) extends Reference
@@ -27,43 +27,4 @@ object references {
2727 })
2828 }
2929 final case class NoLink (title : String , target : String ) extends MaterializableLink
30-
31- implicit class ReferenceShower (val ref : Reference ) extends AnyVal {
32- def showReference : String = ref match {
33- case TypeReference (title, _, tparams) =>
34- title + {
35- if (tparams.nonEmpty) tparams.map(_.showReference).mkString(" [" , " ," , " ]" )
36- else " "
37- }
38-
39- case OrTypeReference (left, right) =>
40- left.showReference + " | " + right.showReference
41- case AndTypeReference (left, right) =>
42- left.showReference + " & " + right.showReference
43-
44- case FunctionReference (args, ret) =>
45- if (args.isEmpty)
46- " () => " + ret.showReference
47- else if (args.tail.isEmpty)
48- args.head.showReference + " => " + ret.showReference
49- else
50- args.mkString(" (" , " ," , s " ) => ${ret.showReference}" )
51-
52- case TupleReference (xs) =>
53- xs.mkString(" (" , " ," , " )" )
54-
55- case BoundsReference (lo, hi) =>
56- lo.showReference + " <: " + hi.showReference
57-
58- case NamedReference (title, ref, isByName, isRepeated) =>
59- val byName = if (isByName) " => " else " "
60- val repeated = if (isRepeated) " *" else " "
61- s " $title: $byName${ref.showReference}$repeated"
62-
63- case ConstantReference (title) => title
64- case EmptyReference =>
65- assert(false , " unexpected empty reference" )
66- " <empty reference>"
67- }
68- }
6930}
0 commit comments