summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/clj/clojure/core.clj8
-rw-r--r--src/jvm/clojure/lang/Keyword.java4
-rw-r--r--test/clojure/test_clojure/reader.clj13
3 files changed, 20 insertions, 5 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 7b4bb4f5..50e4d584 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -355,14 +355,14 @@
(defn symbol
"Returns a Symbol with the given namespace and name."
- ([name] (if (symbol? name) name (. clojure.lang.Symbol (intern name))))
- ([ns name] (. clojure.lang.Symbol (intern ns name))))
+ ([name] (if (symbol? name) name (clojure.lang.Symbol/intern name)))
+ ([ns name] (clojure.lang.Symbol/intern ns name)))
(defn keyword
"Returns a Keyword with the given namespace and name. Do not use :
in the keyword strings, it will be added automatically."
- ([name] (if (keyword? name) name (. clojure.lang.Keyword (intern nil name))))
- ([ns name] (. clojure.lang.Keyword (intern ns name))))
+ ([name] (if (keyword? name) name (clojure.lang.Keyword/intern name)))
+ ([ns name] (clojure.lang.Keyword/intern ns name)))
(defn gensym
"Returns a new symbol with a unique name. If a prefix string is
diff --git a/src/jvm/clojure/lang/Keyword.java b/src/jvm/clojure/lang/Keyword.java
index fcb814f6..9b5aea9a 100644
--- a/src/jvm/clojure/lang/Keyword.java
+++ b/src/jvm/clojure/lang/Keyword.java
@@ -30,6 +30,10 @@ public static Keyword intern(String ns, String name){
return intern(Symbol.intern(ns, name));
}
+public static Keyword intern(String nsname){
+ return intern(Symbol.intern(nsname));
+}
+
private Keyword(Symbol sym){
this.sym = sym;
}
diff --git a/test/clojure/test_clojure/reader.clj b/test/clojure/test_clojure/reader.clj
index b04543a9..20b1bfac 100644
--- a/test/clojure/test_clojure/reader.clj
+++ b/test/clojure/test_clojure/reader.clj
@@ -222,7 +222,18 @@
;; Keywords
-(deftest t-Keywords)
+(deftest t-Keywords
+ (is (= :abc (keyword "abc")))
+ (is (= :abc (keyword 'abc)))
+ (is (= :*+!-_? (keyword "*+!-_?")))
+ (is (= :abc:def:ghi (keyword "abc:def:ghi")))
+ (is (= :abc/def (keyword "abc" "def")))
+ (is (= :abc/def (keyword 'abc/def)))
+ (is (= :abc.def/ghi (keyword "abc.def" "ghi")))
+ (is (= :abc/def.ghi (keyword "abc" "def.ghi")))
+ (is (= :abc:def/ghi:jkl.mno (keyword "abc:def" "ghi:jkl.mno")))
+ (is (instance? clojure.lang.Keyword :alphabet))
+ )
;; Lists