From 9a79af69c9cf69a3b6d8fabdc5a8998f4ca36018 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Sun, 9 Dec 2012 20:40:41 -0500 Subject: [PATCH] Pending test for #466, which is not fixed by running after pickler instead of typer. Ref #609. --- .../sbt-test/source-dependencies/trait-super/A.scala | 6 ++++++ .../sbt-test/source-dependencies/trait-super/B.scala | 6 ++++++ .../source-dependencies/trait-super/Main.scala | 10 ++++++++++ .../source-dependencies/trait-super/changes/B2.scala | 6 ++++++ .../source-dependencies/trait-super/changes/B3.scala | 6 ++++++ .../sbt-test/source-dependencies/trait-super/pending | 12 ++++++++++++ 6 files changed, 46 insertions(+) create mode 100644 sbt/src/sbt-test/source-dependencies/trait-super/A.scala create mode 100644 sbt/src/sbt-test/source-dependencies/trait-super/B.scala create mode 100644 sbt/src/sbt-test/source-dependencies/trait-super/Main.scala create mode 100644 sbt/src/sbt-test/source-dependencies/trait-super/changes/B2.scala create mode 100644 sbt/src/sbt-test/source-dependencies/trait-super/changes/B3.scala create mode 100644 sbt/src/sbt-test/source-dependencies/trait-super/pending diff --git a/sbt/src/sbt-test/source-dependencies/trait-super/A.scala b/sbt/src/sbt-test/source-dependencies/trait-super/A.scala new file mode 100644 index 000000000..52ad7e6a0 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/trait-super/A.scala @@ -0,0 +1,6 @@ +trait A { + def x: Int +} +class E extends A { + def x = 19 +} diff --git a/sbt/src/sbt-test/source-dependencies/trait-super/B.scala b/sbt/src/sbt-test/source-dependencies/trait-super/B.scala new file mode 100644 index 000000000..cba4cc427 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/trait-super/B.scala @@ -0,0 +1,6 @@ +trait B extends A { + abstract override def x = 1 +} +trait C extends A { + abstract override def x = 3 +} diff --git a/sbt/src/sbt-test/source-dependencies/trait-super/Main.scala b/sbt/src/sbt-test/source-dependencies/trait-super/Main.scala new file mode 100644 index 000000000..aed4916b9 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/trait-super/Main.scala @@ -0,0 +1,10 @@ +class X extends E with C with B + +object Main { + + def main(args: Array[String]) { + val x = new X + val expected = args(0).toInt + assert(x.x == expected, "Expected " + expected + ", got " + x.x) + } +} diff --git a/sbt/src/sbt-test/source-dependencies/trait-super/changes/B2.scala b/sbt/src/sbt-test/source-dependencies/trait-super/changes/B2.scala new file mode 100644 index 000000000..c89acd3ae --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/trait-super/changes/B2.scala @@ -0,0 +1,6 @@ +trait B extends A { + abstract override def x = super.x + 2 +} +trait C extends A { + abstract override def x = 3 +} diff --git a/sbt/src/sbt-test/source-dependencies/trait-super/changes/B3.scala b/sbt/src/sbt-test/source-dependencies/trait-super/changes/B3.scala new file mode 100644 index 000000000..2a7ba55ec --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/trait-super/changes/B3.scala @@ -0,0 +1,6 @@ +trait B extends A { + abstract override def x = super.x + 2 +} +trait C extends A { + abstract override def x = super.x +} diff --git a/sbt/src/sbt-test/source-dependencies/trait-super/pending b/sbt/src/sbt-test/source-dependencies/trait-super/pending new file mode 100644 index 000000000..19cb22fd2 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/trait-super/pending @@ -0,0 +1,12 @@ +# This test verifies that adding/removing calls to super in traits properly +# recompiles subclasses. super calls introduce accessors that are not in +# the public API, so this is not picked up by the usual API change detection. + +> run 1 + +$ copy-file changes/B2.scala B.scala +> run 5 + +$ copy-file changes/B3.scala B.scala +> run 21 +