diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-11-06 18:54:51 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-11-06 18:54:51 +0000 |
commit | 67975cdedfa8a2f7780062cb67182aff32e7679e (patch) | |
tree | 6d687cbabedd267d7d5d314e6301875dc7514595 /src | |
parent | 9f3930a61617a37a02f2df317a65a72671bf37b8 (diff) |
made AFn's Comparator.compare work with predicates too, true values sorting first
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/AFn.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/AFn.java b/src/jvm/clojure/lang/AFn.java index 6d760573..b6070dac 100644 --- a/src/jvm/clojure/lang/AFn.java +++ b/src/jvm/clojure/lang/AFn.java @@ -46,7 +46,16 @@ public void run(){ public int compare(Object o1, Object o2){ try { - Number n = (Number) invoke(o1, o2); + Object o = invoke(o1, o2); + + if(o instanceof Boolean) + { + if(RT.booleanCast(o)) + return -1; + return RT.booleanCast(invoke(o2,o1))? 1 : 0; + } + + Number n = (Number) o; return n.intValue(); } catch(Exception e) |