diff --git a/hy/models/keyword.py b/hy/models/keyword.py index f2633a9..6d25633 100644 --- a/hy/models/keyword.py +++ b/hy/models/keyword.py @@ -29,5 +29,8 @@ class HyKeyword(HyObject, str_type): """ def __new__(cls, value): - obj = str_type.__new__(cls, "\uFDD0" + value) + if not value.startswith("\uFDD0"): + value = "\uFDD0" + value + + obj = str_type.__new__(cls, value) return obj diff --git a/tests/native_tests/language.hy b/tests/native_tests/language.hy index cb75e66..5e6f6c7 100644 --- a/tests/native_tests/language.hy +++ b/tests/native_tests/language.hy @@ -983,3 +983,8 @@ (assert (is bar (get foo 1))) (setv (. foo [1] test) "hello") (assert (= (getattr (. foo [1]) "test") "hello"))) + +(defn test-keyword-quoting [] + "NATIVE: test keyword quoting magic" + (assert (= :foo "\ufdd0:foo")) + (assert (= `:foo "\ufdd0:foo")))