6

我有一个顶级特征,其中包含许多类和特征,例如:

trait Trees { self: Types =>
  trait Tree
  trait IdentifiedTree extends Tree
  trait Empty extends Tree

  /** The factory for [[TypeUse]] instances */
  trait TypeUse extends Tree
  /** AST tree to represent erroneous trees */
  object BadTree extends IdentifiedTree
  /** AST tree for empty statements and trees */
  val Empty: Empty = new Empty {}
}

trait Types

当我为它生成文档时,使用 scaladoc 我可以使用 [[CLASS_NAME]] 链接到内部类,但是 scaladoc 无法在签名和扩展中为树创建链接。

我使用 sbt 生成 scaladoc,并使用以下标志:

scalacOptions in (Compile, doc) ++= Seq("-groups", "-implicits",
     "-diagrams", "-no-prefixes", "-author", "-explaintypes",
     "-language:implicitConversions,higherKinds")

为了让您更好地了解,上述定义的api如下(请注意缺少的链接):

在此处输入图像描述

你能告诉我我做错了什么吗?

4

1 回答 1

3

我认为嵌套特征的问题在于内部特征甚至不存在于顶级特征的实例化之外。这篇文章可能会有所帮助。

将顶级 Trees 更改为 Object 为我解决了这个问题。但是,我不确定这对您的用例是否有意义。

object Trees {
    trait Tree
    trait IdentifiedTree extends Tree
    trait Empty extends Tree
    ...
}
于 2015-05-31T15:39:48.993 回答