summaryrefslogtreecommitdiff
path: root/test/files/run/names-defaults.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2009-06-15 15:03:20 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2009-06-15 15:03:20 +0000
commit7337db9c59daeac26e81e22cfea4f7d8b43a0747 (patch)
treefdf3fa7868907040432296e889f8030010c7b3e6 /test/files/run/names-defaults.scala
parenta907772ff59f7150637494f46b60665ca6e21163 (diff)
downloadscala-7337db9c59daeac26e81e22cfea4f7d8b43a0747.tar.gz
scala-7337db9c59daeac26e81e22cfea4f7d8b43a0747.tar.bz2
scala-7337db9c59daeac26e81e22cfea4f7d8b43a0747.zip
allow using named / default arguments in self- ...
allow using named / default arguments in self- and super constructor calls. fixes #2050 and #2052.
Diffstat (limited to 'test/files/run/names-defaults.scala')
-rw-r--r--test/files/run/names-defaults.scala39
1 files changed, 38 insertions, 1 deletions
diff --git a/test/files/run/names-defaults.scala b/test/files/run/names-defaults.scala
index c016a98e1a..6ec391af2f 100644
--- a/test/files/run/names-defaults.scala
+++ b/test/files/run/names-defaults.scala
@@ -183,10 +183,21 @@ object Test extends Application {
// bug #2057
- class O { class I(x: Int = 1) }
+ class O { class I(val x: Int = 1) }
class U extends O { val f = new I() }
+ val u1 = new U
+ println(u1.f.x)
+ // names / defaults in self constructor call
+ new A3("lskfdjlk")
+ new A4(1.23, ",")
+
+
+ // names / defaults in super constructor call
+ new B4()
+ new B5()
+
// DEFINITIONS
def test1(a: Int, b: String) = println(a +": "+ b)
@@ -251,3 +262,29 @@ class A2 {
}
class C2
}
+
+
+
+// using names / defaults in self constructor call
+class A3(x: String, y: Int = 10) {
+ def this(a: Object) {
+ this(y = 10, x = a.toString())
+ println(x)
+ }
+}
+class A4(x: String, y: Int = 11) {
+ def this(b: Double, sep: String) {
+ this(sep + b + sep)
+ println(y)
+ }
+}
+
+
+// using names / defaults in super constructor call
+class A5(x: Int, val y: Int = 2)(z: Int = x + y)
+class B4 extends A5(10)() {
+ println(y)
+}
+class B5 extends A5(y = 20, x = 2)() {
+ println(y)
+}