protected boolean isDefinedFunctionDataTypes(Function func) {
		Parameter[] funcParams = func.getParameters();

		for (Parameter parameter : funcParams) {
			if (parameter.isAutoParameter()) {
				// automatic parameter, is OK.
				continue;
			}
			// check for default type of data type
			DataType dt = parameter.getDataType();
			dt = DataTypeUtilities.getBaseDataType(dt);
			if (dt == null || Undefined.isUndefined(dt)) {
				continue;
			}
			// if the parameters source is higher than
			if (parameter.getSource().isHigherPriorityThan(SourceType.ANALYSIS)) {
				return true;
			}
		}

		// if already a return type and this one has a return type
		DataType returnDT = func.getReturnType();
		returnDT = DataTypeUtilities.getBaseDataType(returnDT);
		if (!(returnDT == null || Undefined.isUndefined(returnDT)) &&
			this.getReturnType() != null) {
			return true;
		}

		return false;
	}
check if the return/param data types were defined by better than analysis (user, import)

@param func the function to check
@return true if the parameters are not undefined, or are of a higher source type.
Ghidra/Features/Base/src/main/java/ghidra/app/util/demangler/DemangledFunction.java