[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Generic aspects

Fixed just now as https://bugs.eclipse.org/bugs/show_bug.cgi?id=231478
. Fix will be in next dev build of AspectJ.

You may find other issues as you head into this area, do feel free to
raise bugzilla entries for anything you encounter.

cheers,
Andy.

2008/5/11 Mark Stobbe <markstobbe@xxxxxxxxx>:
> 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
>