diff options
author | Nadrieril | 2019-08-06 23:03:01 +0200 |
---|---|---|
committer | Nadrieril | 2019-08-06 23:03:01 +0200 |
commit | f7b0c6b9c52f65624dc765fb9eaa7d0d94eeae76 (patch) | |
tree | b72b50561bb3f6f335699c76402819ed20bf42b9 /dhall/src | |
parent | a307a13738ccca538635ae796e6c998439025b9b (diff) |
Generalize empty list annotations
Diffstat (limited to 'dhall/src')
-rw-r--r-- | dhall/src/phase/binary.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/dhall/src/phase/binary.rs b/dhall/src/phase/binary.rs index 66b235f..f88eee2 100644 --- a/dhall/src/phase/binary.rs +++ b/dhall/src/phase/binary.rs @@ -341,6 +341,10 @@ fn cbor_value_to_dhall( let y = cbor_value_to_dhall(&y)?; Annot(x, y) } + [U64(27), x] => { + let x = cbor_value_to_dhall(&x)?; + EmptyListLit(x) + } _ => Err(DecodeError::WrongFormatError(format!("{:?}", data)))?, }, _ => Err(DecodeError::WrongFormatError(format!("{:?}", data)))?, @@ -475,9 +479,9 @@ where EmptyListLit(x) => match x.as_ref() { App(f, a) => match f.as_ref() { ExprF::Builtin(Builtin::List) => ser_seq!(ser; tag(4), expr(a)), - _ => unreachable!(), + _ => ser_seq!(ser; tag(27), expr(x)), }, - _ => unreachable!(), + _ => ser_seq!(ser; tag(27), expr(x)), }, NEListLit(xs) => ser.collect_seq( once(tag(4)).chain(once(null())).chain(xs.iter().map(expr)), |