summaryrefslogtreecommitdiff
path: root/test/files/neg/valueclasses.scala
diff options
context:
space:
mode:
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)
+}
+}