Reports for loops which iterate over collections or arrays, and can be replaced with an enhanced for loop (i.e. the foreach iteration syntax).
Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
makes fromBinding in EclipseFactory an instance rather than static method. This paves the way for fromBinding to return a ResolvedType (which needs the world that the instance contains) rather than an UnresolvedType.
This is the beginning of a significant refactoring needed to cleanly support generics. We need to be much crisper about when we have an unresolved type (plain old TypeX) and when we have a resolved type. This refactoring renames TypeX to UnresolvedType and ResolvedTypeX to ResolvedType. In addition, it moves a number of methods that were defined on TypeX but which can only be answered by resolved types down onto ResolvedType. At the moment, ResolvedType still extends UnresolvedType - but a ResolvedType is *not* a UnresolvedType and this inheritance of convenience will be broken down the line so that ResolvedType does not extend UnresolvedType. Full signature information can only be known for ResolvedTypes.
support in ajc for parsing and error reporting of @AspectJ style aspect definitions (aspect, pointcut, advice only at this point). Also include the AddAtAspectJAnnotationsVisitor support. Switch off using -Xdev:NoAtAspectJProcessing.
Better binary compatibility for advice method names
- I've run the tests a thousand times and they all pass, I'm still nervous about this first big commit though *gulp*
expanded coverage and fix for bug involving around advice with either
assert or <name>.class in the body
the fix for now is just to not inline such advice, but in the future these
should be transformed to inlinable constructs
Half-way through refactoring of ResolvedTypeX's and Worlds. This
should make incremental compilation and using binary aspect libraries
work MUCH better.
The current state doesn't fix any of those issues, but it also does
continue to pass all of the existing tests.
redesign of making members used in around bodies accessible
this design is confiined to the aspect containing the around entirely which
makes for cleaner implementation issues and lets things like super calls
be implemented correctly.