From d2e1f7b76b89b0dfa42b716cb04d5531d4fa259c Mon Sep 17 00:00:00 2001 From: Karl Meakin Date: Thu, 19 Jan 2023 06:01:12 +0000 Subject: [PATCH] Pretty print letrec --- fathom/src/surface/pretty.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/fathom/src/surface/pretty.rs b/fathom/src/surface/pretty.rs index 24e66fb7d..178a7c95b 100644 --- a/fathom/src/surface/pretty.rs +++ b/fathom/src/surface/pretty.rs @@ -165,18 +165,20 @@ impl<'interner, 'arena> Context<'interner, 'arena> { self.concat([ self.text("let"), self.space(), - self.ann_pattern(&def.pattern, def.r#type.as_ref()), - self.space(), - self.text("="), - self.softline(), - self.term(&def.expr), + self.let_def(def), self.text(";"), ]) .group(), self.line(), self.term(body_expr), ]), - Term::Letrec(_, _, _) => todo!(), + Term::Letrec(_, defs, body_expr) => self.sequence( + false, + self.text("letrec "), + defs.iter().map(|def| self.let_def(def)), + self.text(","), + self.concat([self.text(";"), self.line(), self.term(body_expr)]), + ), Term::If(_, cond_expr, then_expr, mut else_expr) => { let mut branches = Vec::new();