private boolean resovleConflictingReferenceTypes(List<GTreeNode> nodes, CallNode existingNode,
			CallNode nodeToAdd) {

		//
		// This code is looking for a special case where the two nodes passed in both come from the
		// same address, point to the same function, but one is a call reference and the other is
		// not.  In this case, we prefer the call reference.
		//
		Address newAddress = nodeToAdd.getSourceAddress();
		Address exitingAddress = existingNode.getSourceAddress();
		if (!newAddress.equals(exitingAddress)) {
			return false; // different source addresses; nothing to do
		}

		if (nodeToAdd.isCallReference() == existingNode.isCallReference()) {
			return false; // same reference type; nothing to do
		}

		// The 2 given nodes point to the same function and from the same address. Remove the 
		// existing node if it is not a call reference.   Otherwise, if the new node is not a call
		// reference, then the existing node is and we should just throw away the new node.
		if (!existingNode.isCallReference()) {
			// swap the old node for the new one
			nodes.remove(existingNode);
			nodes.add(nodeToAdd);
		}
		// else {  // ignore the new node by returning true
		return true; // return true to signal we have handled the new node
	}
Returns true if the reference associated with this node is a call reference type.
@return true if the reference associated with this node is a call reference type.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/calltree/CallNode.java