diff --git a/src/jvm/clojure/lang/EdnReader.java b/src/jvm/clojure/lang/EdnReader.java index 5cc77e85eb..494c0b4c5b 100644 --- a/src/jvm/clojure/lang/EdnReader.java +++ b/src/jvm/clojure/lang/EdnReader.java @@ -24,7 +24,7 @@ public class EdnReader{ static IFn[] macros = new IFn[256]; static IFn[] dispatchMacros = new IFn[256]; -static Pattern symbolPat = Pattern.compile("[:]?+([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)"); +static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)"); static Pattern intPat = Pattern.compile( "([-+]?)(?:(0)|([1-9][0-9]*)|0[xX]([0-9A-Fa-f]+)|0([0-7]+)|([1-9][0-9]?)[rR]([0-9A-Za-z]+)|0[0-9]+)(N)?"); diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java index 8b708a8f5f..9fb8cd72a7 100644 --- a/src/jvm/clojure/lang/LispReader.java +++ b/src/jvm/clojure/lang/LispReader.java @@ -59,7 +59,7 @@ public class LispReader{ static IFn[] macros = new IFn[256]; static IFn[] dispatchMacros = new IFn[256]; //static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^:/]][^:/]*/)?[\\D&&[^:/]][^:/]*"); -static Pattern symbolPat = Pattern.compile("[:]?+([\\D&&[^/]].*/)?(/|[\\D&&[^/]][^/]*)"); +static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?(/|[\\D&&[^/]][^/]*)"); //static Pattern varPat = Pattern.compile("([\\D&&[^:\\.]][^:\\.]*):([\\D&&[^:\\.]][^:\\.]*)"); //static Pattern intPat = Pattern.compile("[-+]?[0-9]+\\.?"); static Pattern intPat = diff --git a/test/clojure/test_clojure/control.clj b/test/clojure/test_clojure/control.clj index 58d2e0fdec..3a7d4c3a59 100644 --- a/test/clojure/test_clojure/control.clj +++ b/test/clojure/test_clojure/control.clj @@ -324,7 +324,7 @@ :set #{3 2 1} :set (sorted-set 2 1 3)))) (testing "test number equivalence" - (is (= :one (case 1N 1 :one :else)))) + (is (= :1 (case 1N 1 :1 :else)))) (testing "test warn when boxing/hashing expr for all-ints case" (should-print-err-message #"Performance warning, .*:\d+ - case has int tests, but tested expression is not primitive..*\r?\n" @@ -348,10 +348,10 @@ (should-not-reflect (Long. (case 1 1 1))) ; new Long(long) (should-not-reflect (Long. (case 1 1 "1")))) ; new Long(String) (testing "non-equivalence of chars and nums" - (are [result input] (= result (case input 97 :got97 :else)) + (are [result input] (= result (case input 97 :97 :else)) :else \a :else (char \a) - :got97 (int \a)) + :97 (int \a)) (are [result input] (= result (case input \a :a :else)) :else 97 :else 97N diff --git a/test/clojure/test_clojure/reader.clj b/test/clojure/test_clojure/reader.clj index 322321dd86..ff0c04ddbf 100644 --- a/test/clojure/test_clojure/reader.clj +++ b/test/clojure/test_clojure/reader.clj @@ -353,9 +353,7 @@ (are [err msg form] (thrown-with-msg? err msg (read-string form)) Exception #"Invalid token: foo:" "foo:" Exception #"Invalid token: :bar/" ":bar/" - Exception #"Invalid token: ::does.not/exist" "::does.not/exist" - Exception #"Invalid token: :5" ":5")) - + Exception #"Invalid token: ::does.not/exist" "::does.not/exist")) ;; Lists (deftest t-Lists)