Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] Status of IDE integration support in compiler

For the beta4 release, I fixed most of the bugs in the code to build the structure models that are used by the different IDE integrations to show the crosscutting structure of programs -- so you shouldn't see the arbitrary crashes reported in 1.1beta2.

Part of the fix that I'm dubious about is that some join point shadows silently don't appear in the model at all.  I added an Xlint warning (shadowNotInStructure) so that users can be informed when this happens.  By default it's set to ignore.

Here's an example of a join point shadow that won't appear in the structure:

class Foo implements Runnable {
    Foo() { }
}


aspect A {
    before(): initialization(Runnable) { ... }
}

The advice in A will run whenever a Foo is constructed because part of initializing a class is initializing all of its super classes and interfaces.  However, the shadow appears to be in the code for Runnable which the compiler doesn't have access to.

Someone needs to figure out what the correct behavior should be in a tricky case like this and implement it.

-Jim


Back to the top