int previousElementIndex = this.elementIndex;
this.elements = JavaElement.NO_ELEMENTS;
this.elementIndex = -1;
if(isDeclaration) {
IType type = resolveTypeByLocation(declaringTypePackageName, declaringTypeName,
NameLookup.ACCEPT_ALL,
start, end);
if(type != null) {
this.acceptMethodDeclaration(type, selector, start, end);
}
} else {
IType type = resolveType(declaringTypePackageName, declaringTypeName,
NameLookup.ACCEPT_ALL);
// fix for 1FWFT6Q
if (type != null) {
if (type.isBinary()) {
// need to add a paramater for constructor in binary type
IType declaringDeclaringType = type.getDeclaringType();
boolean isStatic = false;
try {
isStatic = Flags.isStatic(type.getFlags());
} catch (JavaModelException e) {
// isStatic == false
}
if(declaringDeclaringType != null && isConstructor && !isStatic) {
int length = parameterPackageNames.length;
System.arraycopy(parameterPackageNames, 0, parameterPackageNames = new char[length+1][], 1, length);
System.arraycopy(parameterTypeNames, 0, parameterTypeNames = new char[length+1][], 1, length);
System.arraycopy(parameterSignatures, 0, parameterSignatures = new String[length+1], 1, length);
parameterPackageNames[0] = declaringDeclaringType.getPackageFragment().getElementName().toCharArray();
parameterTypeNames[0] = declaringDeclaringType.getTypeQualifiedName().toCharArray();
parameterSignatures[0] = Signature.getTypeErasure(enclosingDeclaringTypeSignature);
}
acceptBinaryMethod(type, selector, parameterPackageNames, parameterTypeNames, parameterSignatures, typeParameterNames, typeParameterBoundNames, uniqueKey, isConstructor);
} else {