From 63aa21c581933a10b2b1ab96c632c72834cf2115 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Mon, 15 Apr 2019 12:22:02 +0200 Subject: Handle empty optionals correctly Closes #78 --- dhall/src/normalize.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'dhall/src/normalize.rs') diff --git a/dhall/src/normalize.rs b/dhall/src/normalize.rs index 716b7ee..58deb87 100644 --- a/dhall/src/normalize.rs +++ b/dhall/src/normalize.rs @@ -265,6 +265,8 @@ fn normalize_ref(expr: &Expr>) -> Expr { BoolIf(BoolLit(false), _, f) => DoneRef(f), // TODO: interpolation // TextLit(t) => + OldOptionalLit(None, t) => Done(EmptyOptionalLit(t.roll())), + OldOptionalLit(Some(x), _) => Done(NEOptionalLit(x.roll())), BinOp(BoolAnd, BoolLit(x), BoolLit(y)) => Done(BoolLit(*x && *y)), BinOp(BoolOr, BoolLit(x), BoolLit(y)) => Done(BoolLit(*x || *y)), BinOp(BoolEQ, BoolLit(x), BoolLit(y)) => Done(BoolLit(x == y)), -- cgit v1.2.3