public boolean acceptBinding(IBinding binding) { if (fFound) return true; if (binding == null) return false; if (fToSearch.getKind() != binding.getKind()) { return false; } boolean checkVisibility = hasFlag(CHECK_VISIBILITY, fFlags); if (binding == fToSearch) { fFound = true; } else { IBinding bindingDeclaration = Bindings.getDeclaration(binding); if (bindingDeclaration == fToSearch) { fFound = true; } else if (bindingDeclaration.getName().equals(fToSearch.getName())) { String signature = getSignature(bindingDeclaration); if (signature != null && signature.equals(getSignature(fToSearch))) { if (checkVisibility) { fIsVisible = false; } return true; // found element that hides the binding to find } } } if (fFound && checkVisibility) { fIsVisible = ScopeAnalyzer.isVisible(binding, fParentTypeBinding); } return fFound; }