> On Dec 19, 2015, at 7:12 PM, Dmitri Gribenko via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> On Sat, Dec 19, 2015 at 7:06 PM, Jordan Rose via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> -1 to using '&' in the declaration; it's a sigil that doesn't mean anything 
> as is. (I was originally on the side of using 'inout' at the call site as 
> well, i.e. "swap(inout x, inout y)", but it was considered too verbose.)
> 
> I'd actually suggest that we reconsider this.  '&' at the callsite has deep 
> associations with C semantics, and I have too frequently seen buggy code 
> using '&x' combined with one of the C interop implicit conversions to "get a 
> pointer" that the code stores in a variable somewhere.  It is also hard to 
> explain to people that '&x' does not do what they want in that case, "& means 
> address-of, and it returns a pointer here, what do you mean I can't use it?"

I have always thought "&" was problematic for that reason.  The question is 
whether it's problematic enough to change.

-Dave



_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to