@Override
	public Namespace getNamespace() {
		Function func = function.getFunction();
		Namespace namespc = func.getParentNamespace();
		while (func.isThunk() && namespc.getID() == Namespace.GLOBAL_NAMESPACE_ID) {
			// Thunks can be in a different namespace than the thunked function.
			// We choose the thunk's namespace unless it is the global namespace
			func = func.getThunkedFunction(false);
			namespc = func.getParentNamespace();
		}
		return namespc;
	}
Construct given an Address, size, and decompiler function model for the symbol.
The Address is typically the entry point of the function but may be different
if the function is getting mapped from elsewhere (i.e. the EXTERNAL space). The size
is given in bytes but generally isn't the true size of the function. The size needs to
make the symbol just big enough to absorb any off-cut Address queries.
@param addr is the starting Address of the symbol
@param size is the pseudo-size of the function
@param function is the decompiler model of the function
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/HighFunctionSymbol.java