我有一个顶级特征,包含许多类和特征,如:
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如下(请注意缺少的链接):
你能告诉我我做错了吗?
答案 0 :(得分:3)
我认为嵌套特征的问题在于内部特征甚至不存在于顶级特征的实例化之外。这post可能会有所帮助。
将顶层树木更改为对象解决了我的问题。但是,我不确定这对您的用例是否有意义。
object Trees {
trait Tree
trait IdentifiedTree extends Tree
trait Empty extends Tree
...
}