Ok, thank you for your fast reply. I hope it can be fixed soon, as it
would
be useful for me.. then again.. you are probably already busy enough :)
Just for the sake of completeness, here is a (not so much) working test
case:
/* Error message: Type B does not meet the specification for type
parameter
1 (A extends Base) in generic type GenericAspectA */
abstract aspect GenericAspectA<A extends Base> {}
abstract aspect GenericAspectB<B extends SubBase> extends
GenericAspectA<B>
{}
/* Base extends SubBase extends SubSubBase */
class Base {}
class SubBase extends Base {}
class SubSubBase extends SubBase {}
/* Plain Java implementation */
class GenericA<A extends Base> {}
class GenericB<B extends SubBase> extends GenericA<B> {}
Good luck!
Mark
--------------------------------------------------
From: "Andy Clement" <andrew.clement@xxxxxxxxx>
Sent: Sunday, May 11, 2008 8:55 PM
To: <aspectj-users@xxxxxxxxxxx>
Subject: Re: [aspectj-users] Generic aspects
> Hi Mark,
>
> The docs only say (
>
http://www.eclipse.org/aspectj/doc/released/adk15notebook/generics-inAspectJ5.html
> ):
>
>
> > AspectJ 5 allows an abstract aspect to be declared as a generic type.
Any concrete aspect extending a generic abstract aspect must extend a
parameterized version of the abstract aspect.
> >
>
> That page of the doc also shows some examples of a hierarchy of
> abstract generic aspects, although none of them alter the bounds in
> the way your example does. So the fact that your code won't compile
> is a bug that needs fixing.
>
> cheers,
> Andy.
>
> 2008/5/11 Mark Stobbe <markstobbe@xxxxxxxxx>:
>
> >
> >
> >
> >
> > Hello,
> >
> > First of all, I know this is not possible, as it says on the manual
page..
> > but I was wondering why..
> > In plain Java you can redefine the upperbound of a type parameter,
> > i.e.:
> >
> > class AbstractComponent<C extends Component> {}
> > class AbstractWindow<W extends Window> extends AbstractComponent<W>
> > {}
> >
> > Now.. trying the same thing with aspects.. does not work:
> >
> > abstract aspect AbstractComponentA<C extends Component> {}
> > abstract aspect AbstractWindowA<W extends Window> extends
> > AbstractComponentA<W> {}
> >
> > So.. my question, why isn't this supported? And what would be the
> > "best"
> > workaround?
> >
> > Thanks in advance,
> > Mark
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> >
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users