clojure.core/proxy does not work when one reloads namespace containing defprotocol.
E.g. one can't reload the following file without triggering an error:
Saving the above as foo/baz.clj, I get the following error:
I'm using the current git master (commit 5cfe5111ccb5afec4f9c73), but clojure 1.7 has the same problem.
The problem is that proxy-name only uses the interface names as a key. These names do not change when reloading the namespace, but the interfaces themself are new.
I'm going to attach a short patch which fixes that issue for me.
tested on 64 bit linux, oracle jdk 1.8
I'm not sure how this interacts with AOT compilation.