Scaladoc не может генерировать ссылки для внутренних классов в сигнатурах методов и классов

У меня есть черта высшего уровня, которая содержит ряд классов и черт, таких как:

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 для генерации скаладока и использую следующие флаги:

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

Чтобы дать вам лучшее представление, API для приведенного выше определения выглядит следующим образом (обратите внимание на отсутствующие ссылки):

введите описание изображения здесь

Можете ли вы сказать мне, что я делаю не так, пожалуйста?

1 ответ

Я думаю, что проблема с вложенными чертами заключается в том, что внутренние черты даже не существуют за пределами реализации черты высшего уровня. Этот пост может быть полезен.

Изменение деревьев верхнего уровня на объект решило проблему для меня. Однако я не уверен, имеет ли это смысл для вашего случая использования.

object Trees {
    trait Tree
    trait IdentifiedTree extends Tree
    trait Empty extends Tree
    ...
}
Другие вопросы по тегам