summaryrefslogtreecommitdiff
path: root/src/jvm/clojure
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-06-02 13:26:33 +0000
committerRich Hickey <richhickey@gmail.com>2008-06-02 13:26:33 +0000
commitb692f3e2697badd25b593298887ab5c3f91c5687 (patch)
treeff15788fb7c5701dd823eb6f252806c29350a2ad /src/jvm/clojure
parent2c57f4b5cbb5608905f45cccad3958de51c62590 (diff)
made Objects dominate primitives in subsumes
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r--src/jvm/clojure/lang/Compiler.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index c1961f78..c5781106 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -1880,11 +1880,12 @@ static boolean subsumes(Class[] c1, Class[] c2){
Boolean better = false;
for(int i = 0; i < c1.length; i++)
{
- if(!(c1[i] == c2[i] || c2[i].isPrimitive() && c1[i] == Object.class))
+ if(c1[i] != c2[i])// || c2[i].isPrimitive() && c1[i] == Object.class))
{
- if(c1[i].isPrimitive() && c2[i] == Object.class
+ if(!c1[i].isPrimitive() && c2[i].isPrimitive()
//|| Number.class.isAssignableFrom(c1[i]) && c2[i].isPrimitive()
- || c2[i].isAssignableFrom(c1[i]))
+ ||
+ c2[i].isAssignableFrom(c1[i]))
better = true;
else
return false;