aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/t3578.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-12-15 17:46:39 +0100
committerMartin Odersky <odersky@gmail.com>2015-12-19 14:47:16 +0100
commit4619393a6c3b52127ceec07e2fc3630d22aef51a (patch)
treec7bfcee91ca38b06e1aa81da7770001e3e5c5da9 /tests/pos/t3578.scala
parent8e257a63872697bd48a51ce93a0289c9f5acdfd8 (diff)
downloaddotty-4619393a6c3b52127ceec07e2fc3630d22aef51a.tar.gz
dotty-4619393a6c3b52127ceec07e2fc3630d22aef51a.tar.bz2
dotty-4619393a6c3b52127ceec07e2fc3630d22aef51a.zip
Categorize more tests
All pos tests up to 3999 have been triaged. One new test in pending.
Diffstat (limited to 'tests/pos/t3578.scala')
-rw-r--r--tests/pos/t3578.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/pos/t3578.scala b/tests/pos/t3578.scala
new file mode 100644
index 000000000..2ce92a776
--- /dev/null
+++ b/tests/pos/t3578.scala
@@ -0,0 +1,30 @@
+object Test {
+ sealed abstract class JValue {
+ def ++(other: JValue) = {
+ def append(value1: JValue, value2: JValue): JValue = (value1, value2) match {
+ case (JNothing, x) => x
+ case (x, JNothing) => x
+ case (JObject(xs), x: JField) => JObject(xs ::: List(x))
+ case (x: JField, JObject(xs)) => JObject(x :: xs)
+ case (JArray(xs), JArray(ys)) => JArray(xs ::: ys)
+ case (JArray(xs), v: JValue) => JArray(xs ::: List(v))
+ case (v: JValue, JArray(xs)) => JArray(v :: xs)
+ case (f1: JField, f2: JField) => JObject(f1 :: f2 :: Nil)
+ case (JField(n, v1), v2: JValue) => JField(n, append(v1, v2))
+ case (x, y) => JArray(x :: y :: Nil)
+ }
+ append(this, other)
+ }
+ }
+
+ case object JNothing extends JValue
+ case object JNull extends JValue
+ case class JString(s: String) extends JValue
+ case class JDouble(num: Double) extends JValue
+ case class JInt(num: BigInt) extends JValue
+ case class JBool(value: Boolean) extends JValue
+ case class JField(name: String, value: JValue) extends JValue
+ case class JObject(obj: List[JField]) extends JValue
+ case class JArray(arr: List[JValue]) extends JValue
+}
+