summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2010-09-01 14:12:42 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2010-09-01 14:12:42 +0000
commitd7cc24bf7857ffe9e8dd51e2ac7f6254013c03b6 (patch)
tree5ad173f9e6f1034c742f5378f0b608830dacb9f1 /test/files/run
parent515db1d1be97ed29c809b27da3fb31cbca897924 (diff)
downloadscala-d7cc24bf7857ffe9e8dd51e2ac7f6254013c03b6.tar.gz
scala-d7cc24bf7857ffe9e8dd51e2ac7f6254013c03b6.tar.bz2
scala-d7cc24bf7857ffe9e8dd51e2ac7f6254013c03b6.zip
Merged revisions 22682,22685,22687,22693-22694 ...
Merged revisions 22682,22685,22687,22693-22694 via svnmerge from https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk ........ r22682 | rytz | 2010-08-05 10:20:47 +0200 (Thu, 05 Aug 2010) | 1 line close #3685. review by moors. ........ r22685 | rytz | 2010-08-05 17:43:46 +0200 (Thu, 05 Aug 2010) | 22 lines close #3667. all companion objects are now serializable. note that you can reproduce the error without default arguments: scala> def ser(o: AnyRef) = new java.io.ObjectOutputStream(new java.io.ByteArrayOutputStream()).writeObject(o) ser: (o: AnyRef)Unit scala> @serializable class Outer { | case class Inner(x: Int) | } defined class Outer scala> val o = new Outer o: Outer = Outer@34469729 scala> ser(new o.Inner(1)) scala> o.Inner // initialize the Inner$module field of o res1: o.Inner.type = Inner scala> ser(new o.Inner(1)) java.io.NotSerializableException: Outer$Inner$ review by extempore. ........ r22687 | rytz | 2010-08-05 22:17:38 +0200 (Thu, 05 Aug 2010) | 1 line fixes names/defaults when using :_* for specifying repeated parameters. close #3697, no review. ........ r22693 | rytz | 2010-08-06 17:58:44 +0200 (Fri, 06 Aug 2010) | 1 line close #3403. BeanProperty cannot be used when renamed. no review. ........ r22694 | rytz | 2010-08-06 17:58:47 +0200 (Fri, 06 Aug 2010) | 1 line close #2799. companion objects of deprecated classes are also marked as deprecated. review by extempore. ........
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/names-defaults.check10
-rw-r--r--test/files/run/names-defaults.scala17
-rw-r--r--test/files/run/t3667.check3
-rw-r--r--test/files/run/t3667.scala45
4 files changed, 75 insertions, 0 deletions
diff --git a/test/files/run/names-defaults.check b/test/files/run/names-defaults.check
index b4effa26d2..d31e98be32 100644
--- a/test/files/run/names-defaults.check
+++ b/test/files/run/names-defaults.check
@@ -106,3 +106,13 @@ blublu1
my text
List(1, 2)
3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
diff --git a/test/files/run/names-defaults.scala b/test/files/run/names-defaults.scala
index 8ddfcd950d..ee0862558a 100644
--- a/test/files/run/names-defaults.scala
+++ b/test/files/run/names-defaults.scala
@@ -351,6 +351,23 @@ object Test extends Application {
(new DBLAH())
+ // #3697
+ object t3697 {
+ def a(x: Int*)(s: Int = 3) = s
+ def b(a: Int, b: Int, c: Int*) = a + b
+ }
+ println(t3697.a(Seq(3): _*)())
+ println(t3697.a(3)())
+ println(t3697.a()())
+ println(t3697.a(2,3,1)())
+ println(t3697.b(a = 1, b = 2))
+ println(t3697.b(a = 1, b = 2, 3))
+ println(t3697.b(b = 1, a = 2, c = 3))
+ println(t3697.b(a = 1, b = 2, 3, 4))
+ println(t3697.b(a = 1, b = 2, Seq(3, 4): _*))
+ println(t3697.b(b = 1, a = 2, c = Seq(3, 4): _*))
+
+
// DEFINITIONS
def test1(a: Int, b: String) = println(a +": "+ b)
def test2(u: Int, v: Int)(k: String, l: Int) = println(l +": "+ k +", "+ (u + v))
diff --git a/test/files/run/t3667.check b/test/files/run/t3667.check
new file mode 100644
index 0000000000..01e79c32a8
--- /dev/null
+++ b/test/files/run/t3667.check
@@ -0,0 +1,3 @@
+1
+2
+3
diff --git a/test/files/run/t3667.scala b/test/files/run/t3667.scala
new file mode 100644
index 0000000000..804432c516
--- /dev/null
+++ b/test/files/run/t3667.scala
@@ -0,0 +1,45 @@
+object Test {
+ def main(args: Array[String]) {
+ val o1 = new Outer1
+ val o2 = new Outer2
+ val o3 = new Outer3
+
+ println(1)
+ ser(new o1.Inner(1))
+ o1.Inner // make sure the Inner$module field of the Outer1 instance is initialized!
+ ser(new o1.Inner(1))
+
+ println(2)
+ ser(new o2.Inner(1))
+ o2.Inner
+ ser(new o2.Inner(1))
+
+ println(3)
+ ser(new o3.Inner(1))
+ o3.Inner
+ ser(new o3.Inner(1))
+ }
+
+ def ser(o: AnyRef) {
+ val oos = new java.io.ObjectOutputStream(new java.io.ByteArrayOutputStream())
+ oos.writeObject(o)
+ oos.close()
+ }
+
+}
+
+@serializable
+class Outer1 {
+ @serializable
+ class Inner(x: Int = 1)
+}
+
+@serializable
+class Outer2 {
+ case class Inner(x: Int = 1)
+}
+
+@serializable
+class Outer3 {
+ case class Inner(x: Int)
+}