aaron.ballman added a comment.

In D84005#2172747 <https://reviews.llvm.org/D84005#2172747>, @doug.gregor wrote:

> In D84005#2171982 <https://reviews.llvm.org/D84005#2171982>, @MForster wrote:
>
> > @milseman, @doug.gregor, could you please help with the open questions on 
> > this review?
> >
> > Specifically:
> >
> > - Is `ns_error_domain` ever needed for something other than an enum?
>
>
> No, it only makes sense on enums.
>
> > - Why is this designed in the way it is (requiring an identifier for the 
> > domain, not allowing literals and then only using the name of the 
> > identifier from Swift)?
>
> It's codifying the design of NSError, which has been this way since... longer 
> than Clang has existed, and is independent of Swift. NSErrors have a domain 
> (identified by an NSString constant symbol, not a literal, for pointer 
> uniqueness and code size)  and a code (an integer, conventionally defined by 
> an enum). The two need to be used together, e.g., you create an NSError with 
> a domain and a code from that domain. This attribute finally ties those 
> things together at the source level.


Ah, thank you, that makes the design far more clear to me.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D84005



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

Reply via email to