Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-dev] AspectJ compiler moved to Eclipse 3.0 M6 JDT base

hi,

i've tried to compile my projects with the CVS version mentioned below
and it does not compile everything. it's hard to identify why because i
have plenty of complex aspects depending on each other, but something
like this happens:

aspect A
{
	protected interface Inter {};

	public void Inter.publicMethod()
	{
		privateMethod();
	}

	private void Inter.privateMethod()
	{
	}
}


this aspect is compiled into an aspect jar. then in another project
using this aspect jar i have:

aspect B extends A
{
	protected Inter2 extends Inter {};

	declare parents: SomeClass implements Inter2;
}

and when compiling this i get the following error:

     [iajc]
D:\work\granite\workspace\nvsr\src\web\java\com\netvisor\nvsr\web\bdl\Re
ndererFactory.java:90 Class must implement the inherited abstract method
ComponentMixin.IComponentMixin.ajc$interMethodDispatch2$com_netvisor_web
_framework_components_ComponentMixin$finishButton(Button)
     [iajc] private static class BDLEntityListCellRenderer implements
ListCellRenderer

which translated to our example means: privateMethod is added as an
abstract method to SomeClass but no implementation is provided, so in a
late phase (?) of ajc this error is printed.

changing the private inter-type method to public works, and also before
the checkin it worked.

i've tried to reproduce this in a simple test case with one phase
compiling (without aspect jar), but it works fine. probably it's
connected to aspects in jars?

as a sidenote: there was an ugly bug in the old version of ajc i was
surprised by when i was resolving the new compile errors. the old
compiler compiled some sources it shouldn't have, and the new compiler
doesn't compile. the code was not running on those things, so it didn't
cause any problem. some interface based inter-type declarations were not
reported to be missing, either because they were unneccessarily weaved
in or simply no errors were reported.

hope it helps,

- 101



Back to the top