Summary: | [compiler] ecj fails to compile valid calls to varargs method | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Ayushman Jain <amj87.iitr> |
Component: | Core | Assignee: | Srikanth Sankaran <srikanth_sankaran> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P3 | CC: | Olivier_Thomann, satyam.kandula |
Version: | 3.8 | ||
Target Milestone: | 3.8 M4 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: |
Description
Ayushman Jain
2011-11-24 01:23:14 EST
Fix & tests released in 3.8 stream for M4 via commit id: 0cdfad471234fb0caaef062f9838420246a133df. Many thanks to Olivier for reporting, triaging and the patch which was released via the above commit id. There were two problems with the fix for bug 346042. There is some code path between method resolution and constructor resolution. The fix for bug 346042 made some changes in the common code path and followed it up with suitable changes on the method resolution path after they fork. The corresponding change was missing in the constructor resolution path after the fork resulting in one of the issues. The other issue is due to this landmine: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.canBeSeenBy(PackageBinding) reads: /** * Answer true if the receiver is visible to the invocationPackage. */ public final boolean canBeSeenBy(PackageBinding invocationPackage) { if (isPublic()) return true; if (isPrivate()) return false; // isProtected() or isDefault() return invocationPackage == this.fPackage; } which does patently wrong things in some cases. I'll follow up this with another defect to have this code investigated. (In reply to comment #1) > which does patently wrong things in some cases. I'll follow up this > with another defect to have this code investigated. https://bugs.eclipse.org/bugs/show_bug.cgi?id=364690 raised. Verified for 3.8M4 using build I20111202-0800 |