summaryrefslogtreecommitdiff
path: root/test/scaladoc
diff options
context:
space:
mode:
Diffstat (limited to 'test/scaladoc')
-rw-r--r--test/scaladoc/resources/Trac484.scala18
-rw-r--r--test/scaladoc/scala/html/HtmlFactoryTest.scala21
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
+ }
+ }
}