Summary: | [1.5][compiler] Name clash reported for (correct) eclipse-generated code | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Iain Matcham <I.Matcham> | ||||
Component: | Core | Assignee: | Philipe Mulet <philippe_mulet> | ||||
Status: | VERIFIED FIXED | QA Contact: | |||||
Severity: | blocker | ||||||
Priority: | P3 | CC: | Ed.Merks, give.a.damus, maxime_daniel, philippe_mulet | ||||
Version: | 3.2.1 | ||||||
Target Milestone: | 3.2.2 | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Iain Matcham
2006-10-31 16:15:50 EST
Reproduced with 3.2 maintenance stream. This seems to be a incremental build problem. If a full build is done, no error is reported. If I make a change in DoingImpl and recompile, then an error (name clash) is reported. Same bug in HEAD. I'll prepare a regression test in GenericTypeTest. Added disabled regression tests in org.eclipse.jdt.core.tests.compiler.regression.GenericTypeTest. test1067/1068. 1067 checks the full build scenario and 1068 check the incremental build scenario. Enabled test1067, which passes. test1068 shows that the problem comes from the binary type binding for S (type parameter declared as S extends Something) being marked with AccInterface - which the matching source type binding of test1067 is not. This happens in BinaryTypeBinding#initializeTypeVariable. This results into the method bindings being considered as incompatible since one of the type parameters is an interface (binary) while the other is a class (source). *** Bug 167268 has been marked as a duplicate of this bug. *** Setting the AccInterface bit is indeed a mistake (leftover from some early days). Removed the offending bit setting, enabled test GenericTypeTest#test1068. Created attachment 56552 [details]
Proposed patch for 3.2.2
Maxime - pls add a regression test for the dup bug 167268. Released for 3.2.2. Released for 3.3M5. Fixed verified for 3.2.2 using build M20070112-1200 |