Community
Participate
Working Groups
In bug 186342 comment 62 the issue was brought up that null contracts (using annotations) can also be inherited from super interfaces. This entails that if a class inherits a method from several super types those inherited contracts could contradict each other. As long as the subclass overrides/implements that method, inconsistencies will be reported as an illegal contract redefinition regarding at least one of the inherited methods, but if the subclass inherits an implementation without overriding, the solution in bug 186342 does not detect the inconsistency.
This has been implemented in the prototype as of this revision: http://dev.eclipse.org/viewcvs/viewvc.cgi?view=revision&root=TOOLS_OBJECTTEAMS&revision=2058 plus tests in http://dev.eclipse.org/viewcvs/viewvc.cgi?view=revision&root=TOOLS_OBJECTTEAMS&revision=2057 This will eventually be released together with bug 186342.
Released for 3.8 M4 as part of commit http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/commit/?id=305123b230bcfd1f733969b7cd2c687b75857ff0 on behalf of bug 186342.
Verified for 3.8 M4 using build I20111202-0800.