[swift-evolution] [Proposal] Property behaviors

Chris Lattner clattner at apple.com
Wed Jan 13 23:35:26 CST 2016

> On Jan 13, 2016, at 6:02 PM, Joe Groff via swift-evolution <swift-evolution at swift.org> wrote:
>> Relatedly: How first-class are behaviors? Can you assign `foo.bar.lazy` to a variable, or pass it as a parameter? Or can you pass a value along with its behavior?
>> 	func consumeThing(inout thing: [resettable] Thing) {
>> 		thing.use()
>> 		thing.resettable.reset()
>> 	}
> That's an interesting idea; I think we could add something like that later if it's useful. It's my intent in this proposal to avoid treating behaviors as first-class types and keep them mostly instantiation-based, in order to avoid the metadata instantiation overhead of a type-based approach. That would mean that `bar.lazy` isn't really a first-class entity.

Random point, if bar.lazy isn’t a first class thing, then that reinforces Talin’s syntax idea of bar.[lazy].reset() as the syntax to operate on the behavior.  It would be nice to move towards a model where all simply-dotted things are curryable.


More information about the swift-evolution mailing list