aaron.ballman accepted this revision.
aaron.ballman added a comment.
This revision is now accepted and ready to land.

LGTM modulo some testing requests. Thanks!



================
Comment at: clang/lib/Sema/SemaDeclAttr.cpp:5977
+    checkSwiftAsyncErrorBlock(S, D, ErrorAttr, AsyncAttr);
+}
+
----------------
erik.pilkington wrote:
> aaron.ballman wrote:
> > Should there be a diagnostic to combine `swift_error` and 
> > `swift_async_error` on the same function? Similarly, should there be a 
> > diagnostic when adding `swift_async_error` to a function that isn't 
> > (eventually) marked `swift_async`?
> My understanding is that `swift_error` and `swift_async_error` don't conflict 
> with each other. `swift_error` describes how the non-async swift function 
> handles errors, whereas `swift_async_error` describes how the swift async 
> function handles errors. Since both swift functions are generated, I think it 
> can make sense to have both attributes on one ObjC function. 
> 
> I think it can make sense to have `swift_async_error` without `swift_async`, 
> since the swift importer infers some functions are async without the 
> `swift_async` attribute using heuristics based on parameter names. I guess we 
> could mimic those heuristics here to diagnose when `swift_async_error` 
> doesn't make sense alone, but ISTM that it makes more sense to do that check 
> in the swift importer.
Thanks for the information!

> I think it can make sense to have both attributes on one ObjC function.

Fine by me then! Can you add a test case with a comment showing that this is 
explicitly expected to be okay?

> I think it can make sense to have swift_async_error without swift_async

Also fine by me then! I don't think we need to go to great effort here to 
diagnose that (the swift importer can gain extra logic if that's useful). I 
think this is also worth a test case with a comment.

(In both cases, I'm thinking mostly about code archeology projects in the 
future to answer "did they think of" kind of questions.)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96175/new/

https://reviews.llvm.org/D96175

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to