From 315f58f5fb7241966e218e13c9b26aea8eede56e Mon Sep 17 00:00:00 2001 From: Antoine Gourlay Date: Tue, 4 Nov 2014 11:31:14 +0100 Subject: SI-6626 make @throws tags create links to exceptions In scaladoc, this turns exceptions in @throws tags into links (when it can find the target exception), instead of just showing the name. --- test/scaladoc/run/t6626.check | 7 +++++++ test/scaladoc/run/t6626.scala | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 test/scaladoc/run/t6626.check create mode 100644 test/scaladoc/run/t6626.scala (limited to 'test') diff --git a/test/scaladoc/run/t6626.check b/test/scaladoc/run/t6626.check new file mode 100644 index 0000000000..de3a6c5c0b --- /dev/null +++ b/test/scaladoc/run/t6626.check @@ -0,0 +1,7 @@ +newSource:10: warning: Could not find any member to link for "SomeUnknownException". + /** + ^ +newSource:10: warning: Could not find any member to link for "IOException". + /** + ^ +Done. diff --git a/test/scaladoc/run/t6626.scala b/test/scaladoc/run/t6626.scala new file mode 100644 index 0000000000..6c61c605d6 --- /dev/null +++ b/test/scaladoc/run/t6626.scala @@ -0,0 +1,42 @@ +import scala.tools.nsc.doc.base._ +import scala.tools.nsc.doc.base.comment._ +import scala.tools.nsc.doc.model._ +import scala.tools.partest.ScaladocModelTest + +object Test extends ScaladocModelTest { + + override def code = """ + +package org.foo + +class MyException extends Exception + +class MyOtherException extends Exception + +object Foo { + /** + * Test exception linking + * + * @throws org.foo.MyException linked with a fully-qualified name + * @throws MyOtherException linked with a relative name + * @throws SomeUnknownException not linked at all (but with some text) + * @throws IOException + */ + def test(): Unit = ??? +} + """ + + def scaladocSettings = "" + + def testModel(rootPackage: Package) = { + // get the quick access implicit defs in scope (_package(s), _class(es), _trait(s), object(s) _method(s), _value(s)) + import access._ + + val a = rootPackage._package("org")._package("foo")._object("Foo")._method("test") + val throws = a.comment.get.throws + val allbodies = Body(throws.values.flatMap(_.blocks).toSeq) + + val links = countLinksInBody(allbodies, _.link.isInstanceOf[LinkToTpl[_]]) + assert(links == 2, links + " == 2 (links to MyException and MyOtherException)") + } +} -- cgit v1.2.3