From b50c05708fd58d651c6e3b2811ad81bf55efb6c6 Mon Sep 17 00:00:00 2001 From: jefft0 Date: Tue, 30 Aug 2022 01:54:36 -0700 Subject: [PATCH] fix: Add attribute nonnull_error if returning pointer and error Signed-off-by: jefft0 --- bind/genobjc.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bind/genobjc.go b/bind/genobjc.go index d0982207d..818c133c9 100644 --- a/bind/genobjc.go +++ b/bind/genobjc.go @@ -582,6 +582,11 @@ func (s *funcSummary) asSignature(g *ObjcGen) string { } params = append(params, fmt.Sprintf("%s:(%s)%s", key, g.objcType(p.typ)+"* _Nullable", p.name)) } + if len(params) > 0 && params[len(params)-1] == ":(NSError* _Nullable* _Nullable)error" && + (s.ret == "NSData* _Nullable" || s.ret == "NSString* _Nullable") { + // Allow returning nil to Swift. + params = append(params, "__attribute__((swift_error(nonnull_error)))") + } return strings.Join(params, " ") }