Community
Participate
Working Groups
The following test case fails to compile in AspectJ 1.1 beta 4, and works correctly in AspectJ 1.0. The only work around is to make interfaces public, which is a serious problem. file TransactionControl.aj (default package): import sub.ObserverProtocol; aspect TransactionControl { void begin() { CommitObserver.aspectOf().add(this); } static aspect CommitObserver extends ObserverProtocol { declare parents: TransactionControl implements Observer; } } file sub/ObserverProtocol.aj package sub; public abstract aspect ObserverProtocol { protected interface Observer { } public void add(Observer o) {} } Sample compilation: C:\devel>ajc sub\ObserverProtocol.aj TransactionControl.aj can't bind type name 'Observer' C:/devel/TransactionControl.aj:5: The method add(sub.ObserverProtocol.Observer) in the type sub.ObserverProtocol is not applicable for the arguments (Transactio nControl) CommitObserver.aspectOf().add(this); ^^^ 2 errors
fixed in current tree, test in bugs/interfaceNames/*