diff options
author | Vlad Ureche <vlad.ureche@gmail.com> | 2012-07-02 20:42:38 +0200 |
---|---|---|
committer | Vlad Ureche <vlad.ureche@gmail.com> | 2012-07-16 23:41:44 +0200 |
commit | 891769fae541513d68ce7a8e84b7213472c333c9 (patch) | |
tree | 63815332d3636198229cc7da7bdd7307e04d89bb /test/scaladoc/run | |
parent | 8779ade6f57ef15a04babf9715bc7ca4cbbdc425 (diff) | |
download | scala-891769fae541513d68ce7a8e84b7213472c333c9.tar.gz scala-891769fae541513d68ce7a8e84b7213472c333c9.tar.bz2 scala-891769fae541513d68ce7a8e84b7213472c333c9.zip |
Scaladoc: workaround for untypical Map usecases
SI-3448 partial fix:
This enables a workaround for the fact that Map takes two type params
while $Coll takes only one. But it doesn't fix the problem though,
as there's one more piece missing from the puzzle - we need to adjust
the `Coll`s in {immutable, mutable, concurrent}.Map to something that
makes sense for the usecase. And that's not possible. But I'm
committing this nevertheless, maybe other projects can benefit from it.
And for SI-3448, the solution lies in automatic usecase generation,
whenever that will be ready.
Diffstat (limited to 'test/scaladoc/run')
-rw-r--r-- | test/scaladoc/run/SI-3448.check | 1 | ||||
-rw-r--r-- | test/scaladoc/run/SI-3448.scala | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/test/scaladoc/run/SI-3448.check b/test/scaladoc/run/SI-3448.check new file mode 100644 index 0000000000..619c56180b --- /dev/null +++ b/test/scaladoc/run/SI-3448.check @@ -0,0 +1 @@ +Done. diff --git a/test/scaladoc/run/SI-3448.scala b/test/scaladoc/run/SI-3448.scala new file mode 100644 index 0000000000..a2d3f59596 --- /dev/null +++ b/test/scaladoc/run/SI-3448.scala @@ -0,0 +1,38 @@ +import scala.tools.nsc.doc.model._ +import scala.tools.partest.ScaladocModelTest + +object Test extends ScaladocModelTest { + + // Working around the fact that usecases have the form Coll[T] and not Coll[T, U], as required by Map + override def code = """ + /** + * @define Coll C[T] + */ + class C[T] { + /** + * @usecase def foo[T]: $Coll[T] + */ + def foo[T: Numeric]: C[T] + } + + + /** + * @define Coll D1[T] + */ + class D[U, T] extends C[T] { + protected type D1[Z] = D[U, Z] + } + """ + + // no need for special settings + 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._ + + // just need to check the member exists, access methods will throw an error if there's a problem + assert(rootPackage._class("D")._method("foo").resultType.name == "D[U, T]", + rootPackage._class("D")._method("foo").resultType.name + " == D[U, T]") + } +}
\ No newline at end of file |