} ITypeBinding binding= ASTResolving.guessBindingForReference(name);  String returnType= (binding != null) ? binding.getName() : null; return findSimilarElement(cu, pos, name.getIdentifier(), kind, nArguments, returnType);
ITypeBinding binding= ASTResolving.guessBindingForReference(name); if (binding != null) { returnType= binding.getName(); } } SimilarElementsRequestor requestor= new SimilarElementsRequestor(identifier, kind, nArguments, returnType); return requestor.process(cu, pos);
	public static SimilarElement[] findSimilarElement(ICompilationUnit cu, SimpleName name, int kind) throws JavaModelException {		int pos= name.getStartPosition();		int nArguments= -1;				if (name.getParent().getNodeType() == ASTNode.METHOD_INVOCATION) {			MethodInvocation invocation= (MethodInvocation) name.getParent();			if (name.equals(invocation.getName())) {				if ((kind & METHODS) != 0) {					nArguments= ((MethodInvocation) name.getParent()).arguments().size();				}			} else {				pos= invocation.getStartPosition(); // workaround for code assist				// foo(| code assist here returns only method declaration			}		} 		ITypeBinding binding= ASTResolving.guessBindingForReference(name);				String returnType= (binding != null) ? binding.getName() : null;		return findSimilarElement(cu, pos, name.getIdentifier(), kind, nArguments, returnType);	}