Print typed Kotlin try catch as blocks

ober

9fc12d13fd151e299d3694922aa9fac9a272ecaa

diff --git a/lib/jerboa/typed/kotlin/print.ss b/lib/jerboa/typed/kotlin/print.ss
index ba53b4d..7e448af 100644
--- a/lib/jerboa/typed/kotlin/print.ss
+++ b/lib/jerboa/typed/kotlin/print.ss
@@ -251,6 +251,19 @@
         (parenthesize text)
         text)))
 
+  (def (write-expression-block port indent expr)
+    (display "{" port)
+    (newline port)
+    (if (kt-block? expr)
+      (begin
+        (for-each (lambda (stmt) (write-statement port (+ indent 1) stmt))
+                  (kt-block-statements expr))
+        (write-line port (+ indent 1)
+          (kotlin-expr->string (kt-block-result expr))))
+      (write-line port (+ indent 1) (kotlin-expr->string expr)))
+    (write-indent port indent)
+    (display "}" port))
+
   (def (kotlin-expr->string expr)
     (cond
       [(kt-lit? expr) (kotlin-lit->string expr)]
@@ -340,13 +353,13 @@
          (lambda (port)
            (let ([catch (kt-try-catch expr)])
              (display "try " port)
-             (display (kotlin-expr->string (kt-try-body expr)) port)
+             (write-expression-block port 0 (kt-try-body expr))
              (display " catch (" port)
              (display (kotlin-symbol-name (kt-catch-name catch)) port)
              (display ": " port)
              (display (kotlin-type->string (kt-catch-type catch)) port)
              (display ") " port)
-             (display (kotlin-expr->string (kt-catch-body catch)) port))))]
+             (write-expression-block port 0 (kt-catch-body catch)))))]
       [(kt-block? expr)
        (emit-to-string
          (lambda (port)
diff --git a/tests/test-typed-kotlin.ss b/tests/test-typed-kotlin.ss
index e279356..8c2ffcf 100644
--- a/tests/test-typed-kotlin.ss
+++ b/tests/test-typed-kotlin.ss
@@ -151,7 +151,7 @@
         'error
         (make-kt-type 'Exception #f '())
         (make-kt-block '() (make-kt-lit 'String "fallback")))))
-  "try run {\n    \"ok\"\n} catch (error: Exception) run {\n    \"fallback\"\n}")
+  "try {\n    \"ok\"\n} catch (error: Exception) {\n    \"fallback\"\n}")
 
 (define ast-file-text
   (string-append
@@ -539,7 +539,7 @@
 
 (test-contains "typed try catch lowers to Kotlin try"
   try-kotlin
-  "return try Risky.name() catch (error: Exception) (\"fallback: \" + error.message())")
+  "return try {\n    Risky.name()\n} catch (error: Exception) {\n    (\"fallback: \" + error.message())\n}")
 
 (define geometry-form
   '(typed-library (sample typed geometry)