if (size > 0) {
next : for (int i = 0; i < size; i++) {
try {
LocalVariableBinding binding = (LocalVariableBinding) this.visibleLocalVariables.elementAt(i);
if (binding.type == null || (assignableTypeBinding != null && !binding.type.isCompatibleWith(assignableTypeBinding))) continue next;
JavaElement localVariable = getJavaElement(binding);
if (localVariable != null) result[elementCount++] = localVariable;
} catch(AbortCompilation e) {
// log the exception and proceed
Util.logRepeatedMessage(e.getKey(), e);
}
}
}
size = this.visibleFields.size();
if (size > 0) {
next : for (int i = 0; i < size; i++) {
try {
FieldBinding binding = (FieldBinding) this.visibleFields.elementAt(i);
if (assignableTypeBinding != null && !binding.type.isCompatibleWith(assignableTypeBinding)) continue next;
if (this.assistScope.isDefinedInSameUnit(binding.declaringClass)) {
JavaElement field = getJavaElementOfCompilationUnit(binding);
if (field != null) result[elementCount++] = field;
} else {
JavaElement field = Util.getUnresolvedJavaElement(binding, this.owner, EmptyNodeMap);
if (field != null) result[elementCount++] = field.resolved(binding);
}
} catch(AbortCompilation e) {
// log the exception and proceed
Util.logRepeatedMessage(e.getKey(), e);
}
}
}
size = this.visibleMethods.size();
if (size > 0) {
next : for (int i = 0; i < size; i++) {
try {
MethodBinding binding = (MethodBinding) this.visibleMethods.elementAt(i);
if (assignableTypeBinding != null && !binding.returnType.isCompatibleWith(assignableTypeBinding)) continue next;
if (this.assistScope.isDefinedInSameUnit(binding.declaringClass)) {
JavaElement method = getJavaElementOfCompilationUnit(binding);
if (method != null) result[elementCount++] = method;
} else {
JavaElement method = Util.getUnresolvedJavaElement(binding, this.owner, EmptyNodeMap);
if (method != null) result[elementCount++] = method.resolved(binding);
}
} catch(AbortCompilation e) {
// log the exception and proceed
Util.logRepeatedMessage(e.getKey(), e);
}