summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-11-06 18:54:51 +0000
committerRich Hickey <richhickey@gmail.com>2008-11-06 18:54:51 +0000
commit67975cdedfa8a2f7780062cb67182aff32e7679e (patch)
tree6d687cbabedd267d7d5d314e6301875dc7514595 /src
parent9f3930a61617a37a02f2df317a65a72671bf37b8 (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.java11
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)