From ade23066b1178575be24a403eae5cf234e18ecdf Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Wed, 24 Aug 2016 17:25:11 +0200 Subject: Add `UsecasePhase` to dottydoc --- dottydoc/test/UsecaseTest.scala | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 dottydoc/test/UsecaseTest.scala (limited to 'dottydoc/test') 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") + } + } + } +} -- cgit v1.2.3