diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-09-01 14:12:42 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-09-01 14:12:42 +0000 |
commit | d7cc24bf7857ffe9e8dd51e2ac7f6254013c03b6 (patch) | |
tree | 5ad173f9e6f1034c742f5378f0b608830dacb9f1 /test/files/run | |
parent | 515db1d1be97ed29c809b27da3fb31cbca897924 (diff) | |
download | scala-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.check | 10 | ||||
-rw-r--r-- | test/files/run/names-defaults.scala | 17 | ||||
-rw-r--r-- | test/files/run/t3667.check | 3 | ||||
-rw-r--r-- | test/files/run/t3667.scala | 45 |
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) +} |