private void fixupClosureFunc(GoFuncData funcData, Function func,
				GoType closureStructType) {
			try {
				DataType closureStructDT = goTypes.getGhidraDataType(closureStructType);

				List<Variable> closureParams =
					List.of(new ParameterImpl(GOLANG_CLOSURE_CONTEXT_NAME,
						goBinary.getDTM().getPointer(closureStructDT), closureContextRegister,
						program, SourceType.ANALYSIS));

				func.updateFunction(null, null, closureParams, FunctionUpdateType.CUSTOM_STORAGE,
					true, SourceType.ANALYSIS);

				closureFuncsFixed++;
			}
			catch (IOException | InvalidInputException | DuplicateNameException e) {
				Msg.error(this, "Failed to update closure func signature %s@%s"
						.formatted(func.getName(), func.getEntryPoint()),
					e);
			}
		}
Partially fixup closure func signatures by matching a closure func (*.func1) with a
closure struct ( struct { F uintptr; X0 blah... } ), and giving the func a context param
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangSymbolAnalyzer.java