summaryrefslogtreecommitdiff
path: root/test/files/neg/valueclasses.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-03-05 16:05:07 +0100
committerMartin Odersky <odersky@gmail.com>2012-03-05 16:05:44 +0100
commitedaf481155a550c2b5199de6702c7cbdc2007d58 (patch)
tree1fc03da097d60cdce0e3cd752d768c7864055e07 /test/files/neg/valueclasses.scala
parent0df343a0c614d6a7468105769568b2fba3f9b03c (diff)
downloadscala-edaf481155a550c2b5199de6702c7cbdc2007d58.tar.gz
scala-edaf481155a550c2b5199de6702c7cbdc2007d58.tar.bz2
scala-edaf481155a550c2b5199de6702c7cbdc2007d58.zip
new and updated test cases for value classes.
Diffstat (limited to 'test/files/neg/valueclasses.scala')
-rw-r--r--test/files/neg/valueclasses.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/files/neg/valueclasses.scala b/test/files/neg/valueclasses.scala
index 5979f6f684..e405d95489 100644
--- a/test/files/neg/valueclasses.scala
+++ b/test/files/neg/valueclasses.scala
@@ -31,6 +31,24 @@ class V12[@specialized T, U](val x: (T, U)) extends AnyVal // fail
class V13(x: Int) extends AnyVal // fail
+package time {
+object TOD {
+ final val SecondsPerDay = 86400
+
+ def apply(seconds: Int) = {
+ val n = seconds % SecondsPerDay
+ new TOD(if (n >= 0) n else n + SecondsPerDay)
+ }
+}
+
+final class TOD private (val secondsOfDay: Int) extends AnyVal { // should fail with private constructor
+ def hours = secondsOfDay / 3600
+ def minutes = (secondsOfDay / 60) % 60
+ def seconds = secondsOfDay % 60
+
+ override def toString = "%02d:%02d:%02d".format(hours, minutes, seconds)
+}
+}