Lines 483-504
Link Here
|
483 |
if (type == null) return; // case of a secondary type |
483 |
if (type == null) return; // case of a secondary type |
484 |
|
484 |
|
485 |
char[] bindingSelector = methodBinding.selector; |
485 |
char[] bindingSelector = methodBinding.selector; |
|
|
486 |
boolean isBinary = type.isBinary(); |
487 |
IMethod method = null; |
486 |
TypeBinding[] parameters = methodBinding.original().parameters; |
488 |
TypeBinding[] parameters = methodBinding.original().parameters; |
487 |
int parameterLength = parameters.length; |
489 |
int parameterLength = parameters.length; |
488 |
String[] parameterTypes = new String[parameterLength]; |
490 |
if (isBinary) { |
489 |
for (int i = 0; i < parameterLength; i++) { |
491 |
char[][] parameterTypes = new char[parameterLength][]; |
490 |
char[] typeName = parameters[i].shortReadableName(); |
492 |
for (int i = 0; i<parameterLength; i++) { |
491 |
if (parameters[i].isMemberType()) { |
493 |
char[] typeName = parameters[i].qualifiedSourceName(); |
492 |
typeName = CharOperation.subarray(typeName, CharOperation.indexOf('.', typeName)+1, typeName.length); |
494 |
for (int j=0, dim=parameters[i].dimensions(); j<dim; j++) { |
|
|
495 |
typeName = CharOperation.concat(typeName, new char[] {'[', ']'}); |
496 |
} |
497 |
parameterTypes[i] = typeName; |
493 |
} |
498 |
} |
494 |
parameterTypes[i] = Signature.createTypeSignature(typeName, false); |
499 |
method = locator.createBinaryMethodHandle(type, methodBinding.selector, parameterTypes, locator); |
|
|
500 |
} else { |
501 |
String[] parameterTypes = new String[parameterLength]; |
502 |
for (int i = 0; i < parameterLength; i++) { |
503 |
char[] typeName = parameters[i].shortReadableName(); |
504 |
if (parameters[i].isMemberType()) { |
505 |
typeName = CharOperation.subarray(typeName, CharOperation.indexOf('.', typeName)+1, typeName.length); |
506 |
} |
507 |
parameterTypes[i] = Signature.createTypeSignature(typeName, false); |
508 |
} |
509 |
method = type.getMethod(new String(bindingSelector), parameterTypes); |
495 |
} |
510 |
} |
496 |
IMethod method = type.getMethod(new String(bindingSelector), parameterTypes); |
|
|
497 |
if (knownMethods.includes(method)) return; |
511 |
if (knownMethods.includes(method)) return; |
498 |
|
512 |
|
499 |
knownMethods.add(method); |
513 |
knownMethods.add(method); |
500 |
IResource resource = type.getResource(); |
514 |
IResource resource = type.getResource(); |
501 |
boolean isBinary = type.isBinary(); |
|
|
502 |
IBinaryType info = null; |
515 |
IBinaryType info = null; |
503 |
if (isBinary) { |
516 |
if (isBinary) { |
504 |
if (resource == null) |
517 |
if (resource == null) |