From d1e4911596cb10d5665ff801d10f15b48250581f Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 20 Mar 2017 15:53:53 +0100 Subject: Add test cases --- tests/run/paramForwarding_separate/A_1.scala | 8 ++++++-- tests/run/paramForwarding_separate/B_2.scala | 4 +++- tests/run/paramForwarding_together.check | 6 ++++++ tests/run/paramForwarding_together.scala | 29 +++++++++++++++++++++++++++ tests/run/paramForwarding_together_b.check | 6 ++++++ tests/run/paramForwarding_together_b.scala | 30 ++++++++++++++++++++++++++++ 6 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 tests/run/paramForwarding_together.check create mode 100644 tests/run/paramForwarding_together.scala create mode 100644 tests/run/paramForwarding_together_b.check create mode 100644 tests/run/paramForwarding_together_b.scala (limited to 'tests') diff --git a/tests/run/paramForwarding_separate/A_1.scala b/tests/run/paramForwarding_separate/A_1.scala index 7e01f3ef1..86ebcad24 100644 --- a/tests/run/paramForwarding_separate/A_1.scala +++ b/tests/run/paramForwarding_separate/A_1.scala @@ -1,3 +1,7 @@ -class A(val member: Int) +class A(val member: Int) { + def getAMember = member +} -class SubA(member: Int) extends A(member) +class SubA(member: Int) extends A(member) { + def getSubAMember = member +} diff --git a/tests/run/paramForwarding_separate/B_2.scala b/tests/run/paramForwarding_separate/B_2.scala index 774967101..7c13018b7 100644 --- a/tests/run/paramForwarding_separate/B_2.scala +++ b/tests/run/paramForwarding_separate/B_2.scala @@ -1,4 +1,6 @@ -class B(member: Int) extends SubA(member) +class B(member: Int) extends SubA(member) { + def getMember = member +} object Test { def printFields(cls: Class[_]) = diff --git a/tests/run/paramForwarding_together.check b/tests/run/paramForwarding_together.check new file mode 100644 index 000000000..8df0c3100 --- /dev/null +++ b/tests/run/paramForwarding_together.check @@ -0,0 +1,6 @@ +# Fields in A: +private final int A.member$$local +# Fields in SubA: + +# Fields in B: + diff --git a/tests/run/paramForwarding_together.scala b/tests/run/paramForwarding_together.scala new file mode 100644 index 000000000..670411e58 --- /dev/null +++ b/tests/run/paramForwarding_together.scala @@ -0,0 +1,29 @@ +class A(val member: Int) { + def getAMember = member +} + +class SubA(member: Int) extends A(member) { + def getSubAMember = member +} + +class B(member: Int) extends SubA(member) { + def getBMember = member +} + +object Test { + def printFields(cls: Class[_]) = + println(cls.getDeclaredFields.map(_.toString).sorted.deep.mkString("\n")) + + def main(args: Array[String]): Unit = { + val a = new A(10) + val subA = new SubA(11) + val b = new B(12) + + println("# Fields in A:") + printFields(classOf[A]) + println("# Fields in SubA:") + printFields(classOf[SubA]) + println("# Fields in B:") + printFields(classOf[B]) + } +} diff --git a/tests/run/paramForwarding_together_b.check b/tests/run/paramForwarding_together_b.check new file mode 100644 index 000000000..8df0c3100 --- /dev/null +++ b/tests/run/paramForwarding_together_b.check @@ -0,0 +1,6 @@ +# Fields in A: +private final int A.member$$local +# Fields in SubA: + +# Fields in B: + diff --git a/tests/run/paramForwarding_together_b.scala b/tests/run/paramForwarding_together_b.scala new file mode 100644 index 000000000..cb61cd11f --- /dev/null +++ b/tests/run/paramForwarding_together_b.scala @@ -0,0 +1,30 @@ +class B(member: Int) extends SubA(member) { + def getBMember = member +} + +class SubA(member: Int) extends A(member) { + def getSubAMember = member +} + +class A(val member: Int) { + def getAMember = member +} + + +object Test { + def printFields(cls: Class[_]) = + println(cls.getDeclaredFields.map(_.toString).sorted.deep.mkString("\n")) + + def main(args: Array[String]): Unit = { + val a = new A(10) + val subA = new SubA(11) + val b = new B(12) + + println("# Fields in A:") + printFields(classOf[A]) + println("# Fields in SubA:") + printFields(classOf[SubA]) + println("# Fields in B:") + printFields(classOf[B]) + } +} -- cgit v1.2.3