diff options
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 + } + } } |