aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/test
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-08-24 17:25:11 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-10-06 17:08:03 +0200
commitade23066b1178575be24a403eae5cf234e18ecdf (patch)
tree1397c18a3f4b6e8a9b91b2adc3d1520c6ef1003e /dottydoc/test
parent567798a8f66343993f93250d3261d02dccb86bfc (diff)
downloaddotty-ade23066b1178575be24a403eae5cf234e18ecdf.tar.gz
dotty-ade23066b1178575be24a403eae5cf234e18ecdf.tar.bz2
dotty-ade23066b1178575be24a403eae5cf234e18ecdf.zip
Add `UsecasePhase` to dottydoc
Diffstat (limited to 'dottydoc/test')
-rw-r--r--dottydoc/test/UsecaseTest.scala52
1 files changed, 52 insertions, 0 deletions
diff --git a/dottydoc/test/UsecaseTest.scala b/dottydoc/test/UsecaseTest.scala
new file mode 100644
index 000000000..e2190e709
--- /dev/null
+++ b/dottydoc/test/UsecaseTest.scala
@@ -0,0 +1,52 @@
+package dotty.tools
+package dottydoc
+
+import org.junit.Test
+import org.junit.Assert._
+
+import dotc.util.SourceFile
+import model._
+import model.internal._
+import model.references._
+
+class UsecaseTest extends DottyTest {
+ @Test def simpleUsecase = {
+ val source = new SourceFile(
+ "DefWithUseCase.scala",
+ """
+ |package scala
+ |
+ |trait Test[A] {
+ | /** Definition with a "disturbing" signature
+ | *
+ | * @usecase def foo: A
+ | */
+ | def foo[B]: A => B
+ |}
+ """.stripMargin
+ )
+
+ checkSources(source :: Nil) { packages =>
+ packages("scala") match {
+ case PackageImpl(_, _, List(trt: Trait), _, _) =>
+ val List(map: Def) = trt.members
+
+ val returnValue = map.returnValue match {
+ case ref: TypeReference => ref.title
+ case _ =>
+ assert(
+ false,
+ "Incorrect return value after usecase transformation"
+ )
+ ""
+ }
+
+ assert(
+ map.typeParams.isEmpty,
+ "Type parameters were not stripped by usecase"
+ )
+ assert(returnValue == "A", "Incorrect return type after usecase")
+ }
+ }
+ }
+}