> When we introduce property behaviors, the surface level syntax for this sort > of thing is likely to remain the same, and it therefore stands to reason that > the behavior “accessors” would follow the same convention as keywords.
Yes, but what will the conventions be? Is the accessor for the "did change" behavior going to be `didchange` or `didChange`? If I write a JSON behavior, is my accessor going to be `toJSON` or `tojson`? *That*—not some general rule about keywords which is primarily designed to address things like `fallthrough` and `associatedtype`—is what I think `willSet` and `didSet` ought to match. Users do not care whether something comes out of the standard library or the language grammar; they care whether it has the feel of other things which fit that syntactic slot. (For instance, a perhaps controversial opinion: I think `dynamicType` is properly capitalized for the syntactic slot it's in. That's not to say I think we should *keep* `dynamicType`, but simply that `foo.dynamicType` is more appropriate than `foo.dynamictype` would be.) Thus, `willSet` and `didSet` should be capitalized like other, user-defined, accessors. If user-defined accessors are not going to go into that syntactic slot, or if they are going to have all-lowercase accessor names, then by all means, lowercase `willSet` and `didSet`. But if user-defined accessors are going to be mixed-case, then `willSet` and `didSet` should be too. And if we aren't sure whether user-defined accessors will be all-lowercase or mixed case, then let's not jump the gun and make a change that we're likely to reverse later. -- Brent Royal-Gordon Architechies _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
