diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-11-14 00:22:10 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-11-14 00:40:12 -0800 |
commit | 5b532e927241bfaea4aa9b36e32ff3a0deb1ae15 (patch) | |
tree | 83730ba21561d6ee1d34beb0b579d1a1254d86d4 /test/files/run/t1501.scala | |
parent | 69e62de87d80cf5b9d8c7f4eefcea0638fb2759d (diff) | |
download | scala-5b532e927241bfaea4aa9b36e32ff3a0deb1ae15.tar.gz scala-5b532e927241bfaea4aa9b36e32ff3a0deb1ae15.tar.bz2 scala-5b532e927241bfaea4aa9b36e32ff3a0deb1ae15.zip |
Revived tests that once depended on xml
I was a bit overzealous in moving stuff over to scala-xml in 9c50dd5274
These were all compiler tests that accidentally touched on xml.
I've tried to delicately decouple them so they can roam the
scalac pastures as intended.
Diffstat (limited to 'test/files/run/t1501.scala')
-rw-r--r-- | test/files/run/t1501.scala | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/test/files/run/t1501.scala b/test/files/run/t1501.scala new file mode 100644 index 0000000000..ca6bf357fb --- /dev/null +++ b/test/files/run/t1501.scala @@ -0,0 +1,56 @@ +import scala.tools.nsc._ + +object Test { + + /** + * ... + */ + + val testCode = """ + + class xyz[A] extends annotation.TypeConstraint + + def loopWhile[T](cond: =>Boolean)(body: =>(Unit @xyz[T])): Unit @ xyz[T] = {{ + if (cond) {{ + body + loopWhile[T](cond)(body) + }} + }} + + def test() = {{ + var x = 7 + loopWhile(x != 0) {{ + x = x - 1 + (): @xyz[Int] + }} + }} + + """ + + def main(args: Array[String]) { + val settings = new Settings() + settings.classpath.value = System.getProperty("java.class.path") + val tool = new interpreter.IMain(settings) + val global = tool.global + + import global._ + import definitions._ + + object checker extends AnnotationChecker { + + /** Check annotations to decide whether tpe1 <:< tpe2 */ + def annotationsConform(tpe1: Type, tpe2: Type): Boolean = { + + tpe1.annotations.forall(a1 => tpe2.annotations.forall(a2 => a1.atp <:< a2.atp)) + + } + } + + global.addAnnotationChecker(checker) + + tool.interpret(testCode) + + } + +} + |