[swift-evolution] [swift-evolution-announce] [Review] SE-0087: Rename lazy to @lazy
Chris Lattner
clattner at apple.com
Wed May 18 00:03:48 CDT 2016
> On May 17, 2016, at 9:14 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at 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
More information about the swift-evolution
mailing list