func ancestralFuncStub(pkg *tp.Package, fun *tp.Function) *string { foundAncestor := false name := null.GetString(fun.Name) args := "" for _, arg := range fun.Args { argType := null.GetInt32(arg.TypeId) ancestralArgType := FindAncestralType(pkg, argType) if ancestralArgType != -1 { foundAncestor = true argType = ancestralArgType } argTypeString := pkg.GetTypeName(argType) argName := argTypeString argName = argName + " %" + null.GetString(arg.Name) args = args + ", " + argName } if len(args) > 1 { args = args[2:] } returnType := null.GetInt32(fun.ReturnTypeId) ancestralReturnType := FindAncestralType(pkg, returnType) if ancestralReturnType != -1 { foundAncestor = true returnType = ancestralReturnType } returnTypeString := pkg.GetTypeName(returnType) returnVal := name + "(" + args + ") " + returnTypeString + " " opensType := null.GetInt32(fun.OpensTypeId) ancestralOpensType := FindAncestralType(pkg, opensType) if ancestralOpensType != -1 { foundAncestor = true opensType = ancestralOpensType } opensTypeString := pkg.GetTypeName(opensType) if opensTypeString != "Base" { returnVal = returnVal + opensTypeString } if foundAncestor { return &returnVal } return nil }