diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-06-02 13:26:33 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-06-02 13:26:33 +0000 |
commit | b692f3e2697badd25b593298887ab5c3f91c5687 (patch) | |
tree | ff15788fb7c5701dd823eb6f252806c29350a2ad /src/jvm/clojure | |
parent | 2c57f4b5cbb5608905f45cccad3958de51c62590 (diff) |
made Objects dominate primitives in subsumes
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 7 |
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; |