Skip to content

Commit a1b4a33

Browse files
scgilardiChouser
authored andcommitted
fixed keyword ctor, added tests, fix #154
Signed-off-by: Chouser <[email protected]>
1 parent 994f118 commit a1b4a33

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

src/clj/clojure/core.clj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -355,14 +355,14 @@
355355

356356
(defn symbol
357357
"Returns a Symbol with the given namespace and name."
358-
([name] (if (symbol? name) name (. clojure.lang.Symbol (intern name))))
359-
([ns name] (. clojure.lang.Symbol (intern ns name))))
358+
([name] (if (symbol? name) name (clojure.lang.Symbol/intern name)))
359+
([ns name] (clojure.lang.Symbol/intern ns name)))
360360

361361
(defn keyword
362362
"Returns a Keyword with the given namespace and name. Do not use :
363363
in the keyword strings, it will be added automatically."
364-
([name] (if (keyword? name) name (. clojure.lang.Keyword (intern nil name))))
365-
([ns name] (. clojure.lang.Keyword (intern ns name))))
364+
([name] (if (keyword? name) name (clojure.lang.Keyword/intern name)))
365+
([ns name] (clojure.lang.Keyword/intern ns name)))
366366

367367
(defn gensym
368368
"Returns a new symbol with a unique name. If a prefix string is

src/jvm/clojure/lang/Keyword.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public static Keyword intern(String ns, String name){
3030
return intern(Symbol.intern(ns, name));
3131
}
3232

33+
public static Keyword intern(String nsname){
34+
return intern(Symbol.intern(nsname));
35+
}
36+
3337
private Keyword(Symbol sym){
3438
this.sym = sym;
3539
}

test/clojure/test_clojure/reader.clj

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,18 @@
222222

223223
;; Keywords
224224

225-
(deftest t-Keywords)
225+
(deftest t-Keywords
226+
(is (= :abc (keyword "abc")))
227+
(is (= :abc (keyword 'abc)))
228+
(is (= :*+!-_? (keyword "*+!-_?")))
229+
(is (= :abc:def:ghi (keyword "abc:def:ghi")))
230+
(is (= :abc/def (keyword "abc" "def")))
231+
(is (= :abc/def (keyword 'abc/def)))
232+
(is (= :abc.def/ghi (keyword "abc.def" "ghi")))
233+
(is (= :abc/def.ghi (keyword "abc" "def.ghi")))
234+
(is (= :abc:def/ghi:jkl.mno (keyword "abc:def" "ghi:jkl.mno")))
235+
(is (instance? clojure.lang.Keyword :alphabet))
236+
)
226237

227238
;; Lists
228239

0 commit comments

Comments
 (0)