aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-20 15:53:53 +0100
committerMartin Odersky <odersky@gmail.com>2017-03-20 16:10:11 +0100
commitd1e4911596cb10d5665ff801d10f15b48250581f (patch)
tree12bf8672430b04fc39817effb5f174be8dc701e1 /tests
parent99a77247d1cb4de92b52aa538ce4a2b200383256 (diff)
downloaddotty-d1e4911596cb10d5665ff801d10f15b48250581f.tar.gz
dotty-d1e4911596cb10d5665ff801d10f15b48250581f.tar.bz2
dotty-d1e4911596cb10d5665ff801d10f15b48250581f.zip
Add test cases
Diffstat (limited to 'tests')
-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
6 files changed, 80 insertions, 3 deletions
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])
+ }
+}