aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/jvm/src/dotty/tools/dottydoc/core
diff options
context:
space:
mode:
Diffstat (limited to 'dottydoc/jvm/src/dotty/tools/dottydoc/core')
-rw-r--r--dottydoc/jvm/src/dotty/tools/dottydoc/core/DocASTPhase.scala27
-rw-r--r--dottydoc/jvm/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala6
-rw-r--r--dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala12
3 files changed, 37 insertions, 8 deletions
diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/core/DocASTPhase.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/core/DocASTPhase.scala
index 40e778059..d9fb3bacc 100644
--- a/dottydoc/jvm/src/dotty/tools/dottydoc/core/DocASTPhase.scala
+++ b/dottydoc/jvm/src/dotty/tools/dottydoc/core/DocASTPhase.scala
@@ -55,15 +55,30 @@ class DocASTPhase extends Phase {
}
def membersFromSymbol(sym: Symbol): List[Entity] = {
- val defs = sym.info.bounds.hi.membersBasedOnFlags(Flags.Method, Flags.Synthetic | Flags.Private).map { meth =>
- track(meth.symbol, ctx, tree.symbol) {
- DefImpl(meth.symbol.name.decode.toString, Nil, path(meth.symbol), returnType(meth.info), typeParams(meth.symbol), paramLists(meth.info))
- }
- }.toList
+ val defs = sym.info.bounds.hi.membersBasedOnFlags(Flags.Method, Flags.Synthetic | Flags.Private)
+ .filterNot(_.symbol.owner.name.show == "Any")
+ .map { meth =>
+ track(meth.symbol, ctx, tree.symbol) {
+ DefImpl(
+ meth.symbol.name.show,
+ Nil,
+ path(meth.symbol),
+ returnType(meth.info),
+ typeParams(meth.symbol),
+ paramLists(meth.info),
+ implicitlyAddedFrom = Some(returnType(meth.symbol.owner.info))
+ )
+ }
+ }.toList
val vals = sym.info.fields.filterNot(_.symbol.is(Flags.Private | Flags.Synthetic)).map { value =>
track(value.symbol, ctx, tree.symbol) {
- ValImpl(value.symbol.name.decode.toString, Nil, path(value.symbol), returnType(value.info))
+ ValImpl(
+ value.symbol.name.show,
+ Nil, path(value.symbol),
+ returnType(value.info),
+ implicitlyAddedFrom = Some(returnType(value.symbol.owner.info))
+ )
}
}
diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
index 1da03583e..cd1fef52f 100644
--- a/dottydoc/jvm/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
+++ b/dottydoc/jvm/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
@@ -134,7 +134,8 @@ object transform {
df.returnValue,
df.typeParams,
df.paramLists,
- df.comment
+ df.comment,
+ df.implicitlyAddedFrom
)
}
case vl: Val => transformEntity(vl, _.valTransformation) { vl =>
@@ -143,7 +144,8 @@ object transform {
vl.modifiers,
vl.path,
vl.returnValue,
- vl.comment
+ vl.comment,
+ vl.implicitlyAddedFrom
)
}
}
diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala
index e8c8790d9..7ce6b187b 100644
--- a/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala
+++ b/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala
@@ -37,6 +37,18 @@ class LinkParamListTypes extends DocMiniPhase with TypeLinker {
}
}
+class LinkImplicitlyAddedTypes extends DocMiniPhase with TypeLinker {
+ override def transformDef(implicit ctx: Context) = { case df: DefImpl if df.implicitlyAddedFrom.isDefined =>
+ val implicitlyAddedFrom = linkReference(df, df.implicitlyAddedFrom.get, ctx.docbase.packages[Package].toMap)
+ df.copy(implicitlyAddedFrom = Some(implicitlyAddedFrom))
+ }
+
+ override def transformVal(implicit ctx: Context) = { case vl: ValImpl if vl.implicitlyAddedFrom.isDefined =>
+ val implicitlyAddedFrom = linkReference(vl, vl.implicitlyAddedFrom.get, ctx.docbase.packages[Package].toMap)
+ vl.copy(implicitlyAddedFrom = Some(implicitlyAddedFrom))
+ }
+}
+
trait TypeLinker extends MemberLookup {
def linkReference(ent: Entity, ref: Reference, packs: Map[String, Package]): Reference = {
def linkRef(ref: Reference) = linkReference(ent, ref, packs)