Hi Andy, Thanks for the quick reply. I've put together a test case and filed a bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=433351.
In the process, I discovered that the key factor is the structure of the jar on the inpath. For example, if I have a package abc.def, with class ghi, and in the jar I have the usual structure /abc/def/ghi.class, the interface declare parents is not applied by AspectJ 1.7+. If I then change the jar structure to /any/other/folders/abc.def/ghi.class, the ITD *is* applied. A class declare parents is applied in either case. Anyway, hopefully the test case makes that clear. Regards Jaime On Thu, Apr 24, 2014 at 1:56 AM, Andy Clement <[email protected]>wrote: > Hey, > > Nothing was deliberately changed to affect this specific scenario but one > thing that was heavily overhauled was how we walk over the type hierarchy > when doing analysis, to try and reduce the amount of extraneous garbage > produced during analysis. But IIRC that was done around 1.6.7 - but if you > are saying it still fails in later 1.6 releases, maybe that isn't it. > > If you raise a bug with a minimal test case I'll take a look. > > cheers, > Andy > > > On 23 April 2014 04:56, Jaime Metcher <[email protected]> wrote: > >> Hi All, >> >> I have an aspect with these two ITDs: >> >> declare parents: IBaseInterface extends ISuperInterface; >> declare parents: BaseClass extends SuperClass; >> >> The first one is setting a super-interface, the second a superclass. Not >> sure if it matters, but BaseClass implements IBaseInterface and SuperClass >> implements ISuperInterface. >> >> BaseClass and IBaseInterface are in a jar on the inpath. SuperClass and >> ISuperInterface are in the sourceroots. >> >> Using AspectJ 1.6.x, this works fine. From 1.7.0 upwards, the first >> declare parents that extends the interface is simply ignored. The second >> that adds the superclass one is applied. >> >> UNLESS remove the inpath and just add all the sources to the >> sourceroots. Then it works. >> >> So: 1.6, I can extend an interface that is supplied via the inpath; 1.7+, >> no dice. Question is - did something change with declare parents in 1.7? >> >> I have added verbosity and lint until I'm blue in the face, and it's as >> if the ITD simply doesn't exist. I've checked the change list for 1.7. >> And I've tested on versions 1.6.6, 1.6.10, 1.6.12, 1.7.0, 1.7.3, 1.7.4 and >> 1.8.0. JDK 1.6 and sourcelevel 1.6 in all cases. >> >> Given that I've spent all day troubleshooting this, I don't really want >> to throw away more time trying to create a test case if there's someone out >> there who will go "Oh, yeah, we rewrote module blah in 1.7". >> >> Thanks in advance for any glimmers. >> >> Jaime >> >> >> >> _______________________________________________ >> aspectj-users mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> >> > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
