aboutsummaryrefslogtreecommitdiff
path: root/tests/run
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run')
-rw-r--r--tests/run/paramForwarding.check2
-rw-r--r--tests/run/paramForwarding.scala6
-rw-r--r--tests/run/paramForwarding_separate/A_1.scala8
-rw-r--r--tests/run/paramForwarding_separate/B_2.scala4
-rw-r--r--tests/run/paramForwarding_together.check6
-rw-r--r--tests/run/paramForwarding_together.scala29
-rw-r--r--tests/run/paramForwarding_together_b.check6
-rw-r--r--tests/run/paramForwarding_together_b.scala30
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])
+ }
+}