Export to GitHub

clojure - issue #93

proxy: inheriting a method from more than one iface


Posted on Mar 9, 2009 by Grumpy Elephant

What (small set of) steps will reproduce the problem? (do (proxy [clojure.lang.IPersistentVector] []) nil)

What is the expected output? What do you see instead? Expected: nil Observed: java.lang.ClassFormatError: Duplicate method name&signature in class file clojure/proxy/java/lang/Object$IPersistentVector

Discussed on the group: http://groups.google.com/group/clojure/msg/5cfc8d64fcbe2f52

Comment #1

Posted on Mar 9, 2009 by Grumpy Elephant

Changed duplicate methods detection to not take the return type into account. Changed stub generation to always generate a stub for the most specific return type.

Attachments

Comment #2

Posted on Mar 16, 2009 by Massive Dog

patch applied - svn 1328 - thanks!

Comment #3

Posted on Mar 17, 2009 by Grumpy Elephant

(No comment was entered for this change.)

Attachments

Comment #4

Posted on Mar 17, 2009 by Grumpy Elephant

with patch93bis.patch proxy emits bridge methods for covariant return types (except for the method whose return type is the most specific)

Comment #5

Posted on Mar 17, 2009 by Massive Dog

(No comment was entered for this change.)

Comment #6

Posted on Mar 18, 2009 by Massive Dog

patch applied - r1333 - thanks!

Status: Fixed

Labels:
Type-Defect Priority-Low