Summary: | spring-data hello-worlds sample fails to compile with 1.7.0 | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Andrew Clement <aclement> |
Component: | Compiler | Assignee: | aspectj inbox <aspectj-inbox> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P2 | ||
Version: | 1.7.0 | ||
Target Milestone: | 1.7.1 | ||
Hardware: | PC | ||
OS: | Mac OS X | ||
Whiteboard: |
Description
Andrew Clement
2012-08-08 16:12:37 EDT
This was due to some changes made under bug 374745. In that bug some changes were made to equality checks (==/equals). This led to two type variables no longer being considered the same if one was resolved and the other was not. This comparison changing caused us to fail to see that an ITD on a type was meeting the needs of an abstract method in the supertype. The solution is to resolve the ITD members up front so that the equality tests will succeed. This is a relatively major change as they were previously resolved on demand but all existing tests are OK with this change and the spring-data stuff works now too. I made the following serious changes: - resolvedmembers remember their resolved state and don't repeat resolution of their components if resolve is called again. - all the ITD related resolvedmembers are resolved eagerly in EclipseFactory spoke a little too soon. 'mvn compile' started working but the subsequent 'mvn test' fails. Debugging through that at the moment. fixed again! Enhanced the return type comparison to *always* try and use the generics information. latest 1.7.1.BUILD-SNAPSHOT in the spring snapshot maven repo contains the fix. |