Hi,
Thanks for the detailed bug report.
Your multiple inheritance example stymied the very simple duplicate
removal system that was already in there. I added your example to the
test suite, and fixed the bug. It should be in CVS now.
Thanks
Eric
On Sat, 2009-09-26 at 03:46 +0200, Jan Moringen wrote:
> Hi,
>
> I think I may have found a bug in EIEIO. If it is not a bug, it is at
> least surprising behavior.
>
> I discovered the problem when working with a class hierarchy that looks
> like this
>
> a
> +-d
>
> b
> +-c
> +-d
>
> a and b have initialize-instance :after methods, d has a primary
> initialize-instance method.
>
> When creating a d object, I expect the constructors to run as follows:
>
> 1. (initialize-instance d)
> 2. (initialize-instance b)
> 3. (initialize-instance a)
>
> or
>
> 1. (initialize-instance d)
> 2. (initialize-instance a)
> 3. (initialize-instance b)
>
> but what really happens is
>
> 1. (initialize-instance d)
> 2. (initialize-instance b)
> 3. (initialize-instance a)
> 4. (initialize-instance b)
> 5. (initialize-instance a)
>
> I think, this is wrong, but maybe I did not understand :after or
> call-next-method correctly.
>
> Redefining the involved classes and methods changes something and
> sometimes makes the duplicate runs go away.
>
> The attached code should produce the problem with CVS CEDET.
>
> Any help would be greatly appreciated.
>
> Kind regards,
> Jan
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry® Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9-12, 2009. Register now!
> http://p.sf.net/sfu/devconf
> _______________________________________________ cedet-eieio mailing list cedet-eieio@... https://lists.sourceforge.net/lists/listinfo/cedet-eieio
|