Keep Kotlin expression name escaping separate

ober

b98aa23ec2a473d30bdd71e5c9681c9ec16318de

diff --git a/lib/jerboa/typed/kotlin/print.ss b/lib/jerboa/typed/kotlin/print.ss
index 72150c2..ec983ab 100644
--- a/lib/jerboa/typed/kotlin/print.ss
+++ b/lib/jerboa/typed/kotlin/print.ss
@@ -109,11 +109,18 @@
     (cond
       [(null? parts) '()]
       [(pair? parts)
+       (map kotlin-symbol-name parts)]
+      [else (list (kotlin-symbol-name parts))]))
+
+  (def (qualified-name-parts->strings parts)
+    (cond
+      [(null? parts) '()]
+      [(pair? parts)
        (map kotlin-qualified-part-name parts)]
       [else (list (kotlin-qualified-part-name parts))]))
 
   (def (kotlin-package-name parts)
-    (join-strings (name-parts->strings parts) "."))
+    (join-strings (qualified-name-parts->strings parts) "."))
 
   (def (kotlin-string-literal text)
     (emit-to-string
@@ -213,7 +220,7 @@
         [else (error 'kotlin-lit->string "unsupported literal type" type)])))
 
   (def (kotlin-name->string name)
-    (kotlin-package-name (kt-name-parts name)))
+    (join-strings (name-parts->strings (kt-name-parts name)) "."))
 
   (def (parenthesize text)
     (string-append "(" text ")"))
diff --git a/tests/test-typed-kotlin.ss b/tests/test-typed-kotlin.ss
index 0418de5..28f588e 100644
--- a/tests/test-typed-kotlin.ss
+++ b/tests/test-typed-kotlin.ss
@@ -50,6 +50,9 @@
 (test "qualified package segment keyword"
       (kotlin-package-name '(java nio file Files))
       "java.nio.file.Files")
+(test "expression keyword name escape"
+      (kotlin-expr->string (make-kt-name '(out)))
+      "_out")
 (test "string literal escapes"
   (kotlin-string-literal "a\n\"b\"\\c")
   "\"a\\n\\\"b\\\"\\\\c\"")