diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-02-24 17:04:31 +0900 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-02-24 17:57:59 +0900 |
commit | 5bb7c976712e8c86898b94d1abea1acedeed3562 (patch) | |
tree | 4711c95cf5f7e86cded4ea521f23b7b56f2b21cf /doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala | |
parent | a0f47a00131935d85f957a80d0c4472eaa7b5baa (diff) | |
download | dotty-5bb7c976712e8c86898b94d1abea1acedeed3562.tar.gz dotty-5bb7c976712e8c86898b94d1abea1acedeed3562.tar.bz2 dotty-5bb7c976712e8c86898b94d1abea1acedeed3562.zip |
Add type params to type aliases
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala')
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala b/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala index 7f44c5656..cfb66fa56 100644 --- a/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala +++ b/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala @@ -8,7 +8,7 @@ import dotc.CompilationUnit import dotc.config.Printers.dottydoc import dotc.core.Contexts.Context import dotc.core.Comments.ContextDocstrings -import dotc.core.Types.NoType +import dotc.core.Types.{PolyType, NoType} import dotc.core.Phases.Phase import dotc.core.Symbols.{ Symbol, NoSymbol } @@ -92,8 +92,16 @@ class DocASTPhase extends Phase { val sym = t.symbol if (sym.is(Flags.Synthetic | Flags.Param)) NonEntity - else - TypeAliasImpl(sym, annotations(sym), flags(t), t.name.show.split("\\$\\$").last, path(sym), alias(t.rhs.tpe)) + else { + val tparams = t.rhs.tpe match { + case tp: PolyType => tp.paramRefs.zip(tp.variances).map { case (tp, variance) => + val varianceSym = if (variance == 1) "+" else if (variance == -1) "-" else "" + varianceSym + tp.paramName.show + } + case _ => Nil + } + TypeAliasImpl(sym, annotations(sym), flags(t), t.name.show.split("\\$\\$").last, path(sym), alias(t.rhs.tpe), tparams) + } /** trait */ case t @ TypeDef(n, rhs) if t.symbol.is(Flags.Trait) => |