| Summary: | AmbiguousFunctionReferenceError for RUIWidgets | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Brian Svihovec <svihovec> | ||||
| Component: | EDT | Assignee: | Project Inbox <edt.mofmodel-inbox> | ||||
| Status: | CLOSED DUPLICATE | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | pharmon | ||||
| Version: | unspecified | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
This appears to be a dup of Bug 355989, that is already fixed. *** This bug has been marked as a duplicate of bug 355989 *** This is a duplicate of a defect that was fixed a month ago, so I am closing it. |
Created attachment 202003 [details] Test EGL Files. Create a package named pack2 and import the attached .egl files into the package. When the files are generated, the following exception is thrown: Caused by: org.eclipse.edt.mof.egl.AmbiguousFunctionReferenceError at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.resolveFunction(QualifiedFunctionInvocationImpl.java:116) at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.getTarget(QualifiedFunctionInvocationImpl.java:49) ... 89 more It looks like we need to add the following code to the end of TypeUtils::getBestFitFunctionMember - if (result.isEmpty()){ result = candidates; } // If we still have more than one result, check to see if the first item in the list is in a part that is a subtype of the second part in the list // If the first part in the list is a subtype of the second part in the list, just return the first part in the list if (result.size() > 1){ // Check to see if first function in the list is located in a subtype of the second function T first = (T)result.get(0); T second = (T)result.get(1); if(isSubtypeOf(((StructPart)first.getContainer()).getClassifier(), (EGLClass)IRUtils.getEGLType(((StructPart)second.getContainer()).getTypeSignature()))){ result.clear(); result.add((T) first); } } return result; It is also worth noting that Container.getAllMembers seems to return a different set of functions when External Types are being used directly, as compared to RUIWidgets, which extend from Widget. The attached .egl files contain an example of this scenario.