diff options
author | Martin Odersky <odersky@gmail.com> | 2015-12-15 17:46:39 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-12-19 14:47:16 +0100 |
commit | 4619393a6c3b52127ceec07e2fc3630d22aef51a (patch) | |
tree | c7bfcee91ca38b06e1aa81da7770001e3e5c5da9 /tests/pos/t3578.scala | |
parent | 8e257a63872697bd48a51ce93a0289c9f5acdfd8 (diff) | |
download | dotty-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.scala | 30 |
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 +} + |