From 943fbb1363345fdaca55e5df95059e8ce8c1344b Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Sat, 2 Oct 2010 23:19:16 +0000 Subject: The next batch of tests put up a little more st... The next batch of tests put up a little more struggle, but only a little. See test/pending/pos/unappgadteval.scala (the changes for which were in the previous commit) for an example of a test which might be on to something. Any idea what it would take to get it working? // the key lines case i @ Suc() => { (y: Int) => y + 1 } // a = Int => Int case f @ Lam[b,c](x, e) => { (y: b) => eval(e, env.extend(x, y)) } // a = b=>c No review. --- test/files/run/bug874.check | 2 ++ test/files/run/bug874.scala | 17 +++++++++++++++++ test/files/run/records.scala | 27 +++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 test/files/run/bug874.check create mode 100644 test/files/run/bug874.scala create mode 100644 test/files/run/records.scala (limited to 'test/files/run') diff --git a/test/files/run/bug874.check b/test/files/run/bug874.check new file mode 100644 index 0000000000..91de7e0a03 --- /dev/null +++ b/test/files/run/bug874.check @@ -0,0 +1,2 @@ +U created with xyz and 2 +U created with abc and 1 diff --git a/test/files/run/bug874.scala b/test/files/run/bug874.scala new file mode 100644 index 0000000000..d83014651b --- /dev/null +++ b/test/files/run/bug874.scala @@ -0,0 +1,17 @@ +object Test { + abstract class Base { + val U: { + def apply[A](x1: A)(x2: Int): Any + } + U("xyz")(2) + } + class Mix extends Base { + case class U[A](x1: A)(x2: Int) { + Console.println("U created with "+x1+" and "+x2) + } + } + def main(args : Array[String]) : Unit = { + val obvious: Base = new Mix; + obvious.U("abc")(1) + } +} diff --git a/test/files/run/records.scala b/test/files/run/records.scala new file mode 100644 index 0000000000..c1dc7b67e8 --- /dev/null +++ b/test/files/run/records.scala @@ -0,0 +1,27 @@ +trait C { + def f: Int +} + +object Test { + type T = C { + def f: Int + def g: String + } + + val x: T = new C { + def f = 1 + def g = "hello" + } + + val y = new C { + def f = 2 + def g = " world" + } + + val z: T = y + + def main(args: Array[String]): Unit = { + assert(x.f+z.f == 3) + assert(x.g+z.g == "hello world") + } +} -- cgit v1.2.3