From 1b4184ccbb01634792897d3412c489b989674567 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sat, 1 Nov 2003 19:10:41 +0000 Subject: * Let syntax. --- src/fix-ng/eval.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/fix-ng/eval.cc') diff --git a/src/fix-ng/eval.cc b/src/fix-ng/eval.cc index 785467741631..46bb1f94188d 100644 --- a/src/fix-ng/eval.cc +++ b/src/fix-ng/eval.cc @@ -160,6 +160,11 @@ Expr evalExpr2(EvalState & state, Expr e) if (ATmatch(e, "Rec([])", &bnds)) return expandRec(e, (ATermList) bnds); + /* Let expressions `let {..., body = ...}' are just desugared + into `(rec {..., body = ...}).body'. */ + if (ATmatch(e, "LetRec()", &e1)) + return evalExpr(state, ATmake("Select(Rec(), \"body\")", e1)); + /* Barf. */ throw badTerm("invalid expression", e); } -- cgit 1.4.1