Keep Kotlin expression name escaping separate
ober
b98aa23ec2a473d30bdd71e5c9681c9ec16318de
--- 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 ")")) --- 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\"")