diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2016-06-24 11:32:09 +0200 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2016-08-19 15:37:27 +0200 |
commit | 76413f003945140e5b502e6ad7b8fb058e6e6ade (patch) | |
tree | 2629af097c4b39ef7f7c292495b75f3fcd153bda /dottydoc/shared | |
parent | f1c88d7aac3df093b2912f6905b5fa852cf50e7d (diff) | |
download | dotty-76413f003945140e5b502e6ad7b8fb058e6e6ade.tar.gz dotty-76413f003945140e5b502e6ad7b8fb058e6e6ade.tar.bz2 dotty-76413f003945140e5b502e6ad7b8fb058e6e6ade.zip |
Cleanup return types and type parameters from dollar signs
Diffstat (limited to 'dottydoc/shared')
-rw-r--r-- | dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala index bb415aed7..eb0f54480 100644 --- a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala +++ b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala @@ -49,22 +49,24 @@ object factories { } def returnType(t: Type)(implicit ctx: Context): Reference = { - def typeRef(name: String, params: List[MaterializableLink] = Nil) = - TypeReference(name, UnsetLink(Text(name), name), params) + def typeRef(name: String, query: String = "", params: List[MaterializableLink] = Nil) = { + val realQuery = if (query != "") query else name + TypeReference(name, UnsetLink(Text(name), realQuery), params) + } def expandTpe(t: Type, params: List[MaterializableLink] = Nil): Reference = t match { case ref @ RefinedType(parent, rn) => { - val paramName = ref.refinedInfo match { + val paramName = (ref.refinedInfo match { case ta: TypeAlias if ta.alias.isInstanceOf[NamedType] => - ta.alias.asInstanceOf[NamedType].name.decode.toString - case _ => - rn.decode.toString.split("\\$").last - } + ta.alias.asInstanceOf[NamedType].name.show + case _ => rn.show + }).split("\\$").last val param = UnsetLink(Text(paramName), paramName) expandTpe(parent, param :: params) } - case TypeRef(_, name) => - typeRef(name.decode.toString, params) + case TypeRef(_, n) => + val name = n.decode.toString.split("\\$").last + typeRef(name, params = params) case OrType(left, right) => OrTypeReference(expandTpe(left), expandTpe(right)) case AndType(left, right) => @@ -86,7 +88,13 @@ object factories { case pt: PolyType => expandTpe(pt.resultType) case pp: PolyParam => - typeRef(pp.paramName.decode.toString) + val paramName = pp.paramName.show + val name = + if (paramName.contains('$')) + paramName.split("\\$\\$").last + else paramName + + typeRef(name) } expandTpe(t) @@ -94,7 +102,8 @@ object factories { def typeParams(sym: Symbol)(implicit ctx: Context): List[String] = sym.denot.info match { - case pt: PolyType => pt.paramNames.map(_.decode.toString) + case pt: PolyType => + pt.paramNames.map(_.show.split("\\$").last) case _ => Nil } |