private void mergeConflict(int conflictType, int chosenConflictOption)
			throws DuplicateNameException, InvalidInputException, CircularDependencyException {

		// currentSymbol is either original or my symbol.
		switch (conflictType) {
			case REMOVE_CONFLICT:
				resolveRemoveVsChange(currentSymbol.getID(), chosenConflictOption);
				break;
			case RENAME_CONFLICT:
				resolveRename(currentSymbol.getID(), chosenConflictOption);
				break;
//			case COMMENT_CONFLICT:
//				resolveComment(currentSymbol.getID(), chosenConflictOption);
//				break;
//			case ADD_COMMENT_CONFLICT:
//				resolveAddComment(currentSymbol.getID(), chosenConflictOption);
//				break;
			case NAMESPACE_CONFLICT:
			case ADDRESS_CONFLICT:
				// currentSymbol needs to be MY symbol.
				mergeSymbol(currentSymbol, chosenConflictOption);
				break;
			case PRIMARY_CONFLICT:
				setPrimary(currentAddress, chosenConflictOption);
				break;
		}
	}
Checks to see if there is a symbol in the otherProgram that conflicts
with the indicated symbol. A conflict can be one of these types:
1) a symbol other than label or function that has the same name and 
namespace as another non label or function.
2) a symbol at the same address with the same name and namespace.

@param program the program that contains the specified symbol
@param symbol the symbol (Can be original, latest, or my.)
@param otherProgram the program to be checked for a conflicting symbol
@param saveConflict if true this will also save the conflict for processing or in
some cases automatically process the conflict.
@return true if there is a symbol name conflict
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java