Summary: | [1.5][compiler] AbstractMethodError on derived implementation of derived Interface declaration | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Jan Hoppe <jan.hoppe> | ||||||||||
Component: | Core | Assignee: | Kent Johnson <kent_johnson> | ||||||||||
Status: | VERIFIED FIXED | QA Contact: | |||||||||||
Severity: | blocker | ||||||||||||
Priority: | P2 | CC: | maxime_daniel, philippe_mulet | ||||||||||
Version: | 3.3 | Flags: | philippe_mulet:
review+
jerome_lanneluc: review+ maxime_daniel: review+ Olivier_Thomann: review+ |
||||||||||
Target Milestone: | 3.3 RC4 | ||||||||||||
Hardware: | PC | ||||||||||||
OS: | Windows XP | ||||||||||||
Whiteboard: | |||||||||||||
Attachments: |
|
Description
Jan Hoppe
2007-06-04 04:31:15 EDT
Created attachment 69926 [details]
Error Project with test case
Kent - smells like a late show stopper (now if too risky at this point in the game...). But given it looks like a regression, we probably should address it. Maxime - can you also investigate ? Tagging tentatively for RC4 (no commitment, just so we do keep track of it). Created attachment 69988 [details] Proposed patch The optimization to remove inherited methods meant we didn't add a bridge method for IBase.get() to AImpl. From change for bug 184293 Risk: The change is straight forward and has a low risk of causing new problems. The fix for bug 184293 removed overridden inherited methods for all tests, but should have only done it for checkInheritedReturnTypes() so bridge methods could still be created. Benefits: This is a regression from 3.3M6. Its a real case from actual code, so the fix is necessary for some users. +1 I didn't mean to close it as FIXED. Fix looks OK. Somehow stresses the fact that the check* series of methods has side effects beyond emitting error messages (which may call for an explicit comment, since the more general accepted meaning of check is: go verify something and return the result - implicitly without changing the observed system). Hence +1. Otherwise, we normally no more add tests to the Compliance* classes, but use a test on the compliance instead when results depend on the compliance level. The Compliance* classes should vanish when the migration of existing tests (which may take a while) will be over. I would then suggest that you move the new test to MethodVerifyTest. Created attachment 70141 [details]
Updated patch
Moved test to MethodVerifyTest
Created attachment 70147 [details]
Correct updated patch
+1 for 3.3rc4 +1 for 3.3 RC4 Released into HEAD for 3.3RC4 Verified for 3.3RC4 using I20070606-0010 Great work! I checked your fix with RC4 in my "real life" application and no more "AbstractMethodErrors" has been throws. You made my day! Jan |