aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2022-01-09 17:22:27 +0000
committerLouis Pilfold <louis@lpil.uk>2022-01-09 17:22:27 +0000
commit24e4b166bcf441e2cefaf50f04282a7a3e516283 (patch)
tree9502930ca5fbf63f913331c3bf4dfbd237828a1f /src
parent3b3ee6b405ac3b74aeba06be74ea36645cf0240f (diff)
downloadgleam_stdlib-24e4b166bcf441e2cefaf50f04282a7a3e516283.tar.gz
gleam_stdlib-24e4b166bcf441e2cefaf50f04282a7a3e516283.zip
Correct decode2 return
Diffstat (limited to 'src')
-rw-r--r--src/gleam/dynamic.gleam12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gleam/dynamic.gleam b/src/gleam/dynamic.gleam
index be48206..4571b20 100644
--- a/src/gleam/dynamic.gleam
+++ b/src/gleam/dynamic.gleam
@@ -905,10 +905,14 @@ pub fn decode2(
fn(value) {
case decode1(value), decode2(value) {
Ok(a), Ok(b) -> Ok(constructor(a, b))
- a, b ->
- tuple_errors(a, "0")
- |> list.append(tuple_errors(b, "1"))
- |> Error
+ a, b -> Error(list.flatten([all_errors(a), all_errors(b)]))
}
}
}
+
+fn all_errors(result: Result(a, List(DecodeError))) -> List(DecodeError) {
+ case result {
+ Ok(_) -> []
+ Error(errors) -> errors
+ }
+}