diff options
author | Paul Phillips <paulp@improving.org> | 2011-03-31 19:26:24 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-03-31 19:26:24 +0000 |
commit | 661ce2922df999d70da29ee3910bf2dcf851eb66 (patch) | |
tree | ffb1cf041a6af20668c844d1ffd4b88f94ee6357 /test/scaladoc | |
parent | b1cb4e114f6a3291ad2fdfbd12fa91193f885941 (diff) | |
download | scala-661ce2922df999d70da29ee3910bf2dcf851eb66.tar.gz scala-661ce2922df999d70da29ee3910bf2dcf851eb66.tar.bz2 scala-661ce2922df999d70da29ee3910bf2dcf851eb66.zip |
Printing refinement types in scaladoc.
one-member refinements, for bigger ones printing the number of members.
Should be improved. Closes #484, no review.
Diffstat (limited to 'test/scaladoc')
-rw-r--r-- | test/scaladoc/resources/Trac484.scala | 18 | ||||
-rw-r--r-- | test/scaladoc/scala/html/HtmlFactoryTest.scala | 21 |
2 files changed, 39 insertions, 0 deletions
diff --git a/test/scaladoc/resources/Trac484.scala b/test/scaladoc/resources/Trac484.scala new file mode 100644 index 0000000000..b4f81ae172 --- /dev/null +++ b/test/scaladoc/resources/Trac484.scala @@ -0,0 +1,18 @@ +class RefinementAndExistentials { + type Foo = { + type Dingus + def bippy(x: Int): String + def dingus(): String + } + type Bar = { + type Dingus <: T forSome { type T <: String } + } + def f(x: Foo) = 51 + def g(x: T forSome { type T <: String }) = x + def h(x: Float): { def quux(x: Int, y: Int): Int } = new { + def quux(x: Int, y: Int) = 55 + } + def hh(x: Float) = new { def quux(x: Int, y: Int) = 55 } + def j(x: Int): Bar = sys.error("") + def k(): AnyRef { type Dingus <: T forSome { type T <: String } } = sys.error("") +} diff --git a/test/scaladoc/scala/html/HtmlFactoryTest.scala b/test/scaladoc/scala/html/HtmlFactoryTest.scala index 0c9f7ff48d..738f459157 100644 --- a/test/scaladoc/scala/html/HtmlFactoryTest.scala +++ b/test/scaladoc/scala/html/HtmlFactoryTest.scala @@ -211,4 +211,25 @@ object Test extends Properties("HtmlFactory") { case _ => false } } + + property("Trac #484 - refinements and existentials") = { + val files = createTemplates("Trac484.scala") + val lines = """ + |type Bar = AnyRef { type Dingus <: T forSome { type T <: String } } + |type Foo = AnyRef { ... /* 3 definitions in type refinement */ } + |def g (x: T forSome { type T <: String }): String + |def h (x: Float): AnyRef { def quux(x: Int,y: Int): Int } + |def hh (x: Float): AnyRef { def quux(x: Int,y: Int): Int } + |def j (x: Int): Bar + |def k (): AnyRef { type Dingus <: T forSome { type T <: String } } + """.stripMargin.trim.lines map (_.trim) + + files("RefinementAndExistentials.html") match { + case node: scala.xml.Node => { + val s = node.text.replaceAll("\\s+", " ") + lines forall (s contains _) + } + case _ => false + } + } } |