cue/format: format let clause

Change-Id: Icced6313704dba566ae9c8138238b5626367945e
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/7850
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cue/format/node.go b/cue/format/node.go
index cb865f4..1156c9b 100644
--- a/cue/format/node.go
+++ b/cue/format/node.go
@@ -714,6 +714,14 @@
 		f.expr(n.Condition)
 		f.markUnindentLine()
 
+	case *ast.LetClause:
+		f.print(n.Let, token.LET, blank, nooverride)
+		f.print(indent)
+		f.expr(n.Ident)
+		f.print(blank, nooverride, n.Equal, token.BIND, blank)
+		f.expr(n.Expr)
+		f.markUnindentLine()
+
 	default:
 		panic("unknown clause type")
 	}
diff --git a/cue/format/testdata/expressions.golden b/cue/format/testdata/expressions.golden
index 725e740..4ead811 100644
--- a/cue/format/testdata/expressions.golden
+++ b/cue/format/testdata/expressions.golden
@@ -180,8 +180,9 @@
 
 	e: {
 		for k, v in someObject
+		let x = v
 		if k > "a" {
-			"\(k)": v
+			"\(k)": x
 		}}
 
 	if a |
diff --git a/cue/format/testdata/expressions.input b/cue/format/testdata/expressions.input
index b72299c..a99d791 100644
--- a/cue/format/testdata/expressions.input
+++ b/cue/format/testdata/expressions.input
@@ -176,8 +176,9 @@
 
     e: {
     for k, v in someObject
+    let x = v
     if k > "a" {
-        "\(k)":v}}
+        "\(k)":x}}
 
     if a |
     b {