> On May 17, 2016, at 9:14 PM, Brent Royal-Gordon via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>>      
>> https://github.com/apple/swift-evolution/blob/master/proposals/0087-lazy-attribute.md
> 
> The proposal says this at the beginning:
> 
>> Swift's rule for attribues/keywords is that keywords usually modify type of 
>> variable; attributes do not.
> 
> [citation needed]
> 
> As far as I can tell, this is not true at all. Most declaration modifiers do 
> *not* change the type of anything; as far as I can tell, only `mutating`, 
> `nonmutating`, and possibly `optional` do. Meanwhile, several 
> attributes—particularly `@noescape` and `@autoclosure`—*do* change the type. 
> So where is this belief coming from?

Correct - the proposal is incorrect in this claim.  Swift's typical policy is 
that attributes do *not* modify the type of the declaration, which is why Swift 
1 and 2 have used “lazy” instead of “@lazy”.

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

Reply via email to