private Namespace getResultNamespace(Program resultProgram, Program sourceProgram,
			Symbol sourceSymbol) throws DuplicateNameException, InvalidInputException {
		Symbol resultNsSymbol = null;
		Namespace resultNamespace;
		Namespace sourceNamespace = sourceSymbol.getParentNamespace();
		Symbol sourceNsSymbol = sourceNamespace.getSymbol();

		if (sourceProgram == myPgm) {
			resultNsSymbol = getResultSymbolFromMySymbol(sourceNsSymbol);
		}
		else if (sourceProgram == latestPgm) {
			resultNsSymbol = getResultSymbolFromLatestSymbol(sourceNsSymbol);
		}
		else if (sourceProgram == originalPgm) {
			resultNsSymbol = getResultSymbolFromOriginalSymbol(sourceNsSymbol);
		}
		if (resultNsSymbol == null) {
			resultNamespace =
				DiffUtility.getNamespace(sourceSymbol.getParentNamespace(), resultProgram);
		}
		else {
			resultNamespace = (Namespace) resultNsSymbol.getObject();
		}
		if (resultNamespace == null) {
			resultNamespace = resolveNamespace(sourceProgram, sourceNamespace);
		}
		return resultNamespace;
	}
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