diff options
Diffstat (limited to 'tests/run')
-rw-r--r-- | tests/run/paramForwarding.check | 2 | ||||
-rw-r--r-- | tests/run/paramForwarding.scala | 6 | ||||
-rw-r--r-- | tests/run/paramForwarding_separate/A_1.scala | 8 | ||||
-rw-r--r-- | tests/run/paramForwarding_separate/B_2.scala | 4 | ||||
-rw-r--r-- | tests/run/paramForwarding_together.check | 6 | ||||
-rw-r--r-- | tests/run/paramForwarding_together.scala | 29 | ||||
-rw-r--r-- | tests/run/paramForwarding_together_b.check | 6 | ||||
-rw-r--r-- | tests/run/paramForwarding_together_b.scala | 30 |
8 files changed, 84 insertions, 7 deletions
diff --git a/tests/run/paramForwarding.check b/tests/run/paramForwarding.check index c004a95be..e91447784 100644 --- a/tests/run/paramForwarding.check +++ b/tests/run/paramForwarding.check @@ -13,4 +13,4 @@ NonVal: X: private final int X.theValue$$local Y: -private final int Y.theValue$$local + diff --git a/tests/run/paramForwarding.scala b/tests/run/paramForwarding.scala index 61466b621..6fe80a230 100644 --- a/tests/run/paramForwarding.scala +++ b/tests/run/paramForwarding.scala @@ -19,7 +19,7 @@ class Bz extends A(42) { val theValueInBz = theValue } -// C does not contains a field C.theValue$$local, it contains +// C does not contain a field C.theValue$$local, it contains // a getter C.theValue() which only calls super.theValue() class C(override val theValue: Int) extends A(theValue) @@ -36,8 +36,8 @@ class NonVal(theValue: Int) extends A(theValue) { // X.theValue() which overrides A.theValue() class X(override val theValue: Int) extends NonVal(0) -// Y contains a field Y.theValue$$local accessible using the getter -// Y.theValue() which overrides A.theValue() +// Y does not contain a field Y.theValue$$local, it contains +// a getter Y.theValue() which only calls super.theValue() class Y(override val theValue: Int) extends NonVal(theValue) 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]) + } +} |