OK...this means two things: 1. this is an AJDT bug because AJDT thinks "extends" means extends and "implements" means implements. 2. What Johan is trying to do is not currently possible.
I'll raise a bug for #1. On Mon, Apr 27, 2009 at 9:00 AM, Andy Clement <[email protected]> wrote: > extends/implements are interchangeable and are only syntax sugar - > they don't express any kind of constraint about the match. > > And. > > 2009/4/27 Andrew Eisenberg <[email protected]>: >> Hmmm....that almost sounds like a bug, but don't know if this is an >> AspectJ bug, or an AJDT bug. >> >> Given this: >> >> package p; >> >> public aspect Aspect { >> interface I1 {} >> declare parents : p..* extends I1; >> } >> >> package p; >> public interface Interface { } >> >> package p; >> public class AClass { } >> >> >> I would hve expected that the compiler looks at the "extends" of >> declare parents and sees that the target is an interface. So, the >> "extends" should only apply to other interfaces. If it were >> "implements" then would only apply to classes. >> >> However, AspectJ applies the declare parents to the class, the >> interface, *and* the aspect. >> >> And, AJDT incorrectly applies the "extends" clause to the class. The >> creates a spurious error in the editor because AJDT assumes that >> AClass "extends" I1 (but should really be "implements"). >> >> Johan, until we figure out what *should* be happening here, and >> potentially fix the compiler bug (if we determine that this behavior >> is incorrect), then there is no way that I know of to address your >> problem. >> >> --a >> >> On Mon, Apr 27, 2009 at 5:18 AM, Johan Haleby <[email protected]> wrote: >>> Hi, >>> >>> I'd like to create a simple aspect that adds an interface to other >>> interfaces in a specific package. Right now my pointcut looks like: >>> declare parents: x.y.z..* extends MyInterface; >>> >>> My question is, how to I include only interfaces in the pointcut? I.e. no >>> concrete (or abstract) classes. >>> >>> /Johan >>> _______________________________________________ >>> 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 > _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
