Sent from my iPad
> On May 5, 2016, at 10:59 AM, Dave Abrahams <[email protected]> wrote: > > > on Wed May 04 2016, Matthew Johnson <matthew-AT-anandabits.com> wrote: > >>> On May 4, 2016, at 4:16 PM, David Sweeris <[email protected]> wrote: >>> >>> Having given it some more thought... Does "PureReference" make >>> sense? What would it mean? At some point a reference has to, you >>> know, actually refer to a concrete value. Otherwise it's just >>> turtles all the way down. >> >> In my thinking PureReference (or ImmutableObject) has semantics >> indicating that the type is a value-semantic reference type. I think >> this could be quite useful in some cases. > > Like what? To a first approximation, the only thing I can see this being > useful for is Objective-C interop. Aside from being an element of an > NSArray, there's nothing a an immutable class can do that a struct > can't. Objective-C / cocoa interop is important enough to matter IMO. > >> >> >>> >>> Sent from my iPhone >>> >>>> On May 4, 2016, at 13:32, Matthew Johnson <[email protected]> wrote: >>>> >>>> >>>>> On May 4, 2016, at 1:21 PM, David Sweeris via swift-evolution >>>>> <[email protected]> wrote: >>>>> >>>>> >>>>>> On May 4, 2016, at 11:12, Joe Groff via swift-evolution >>>>>> <[email protected]> wrote: >>>>>> >>>>>> I can see value in there being some kind of PureValue protocol, >>>>>> for types that represent fully self-contained values, but >>>>>> conforming to that protocol requires a bit more thought than just >>>>>> being a struct or enum, since there are structs that have >>>>>> reference semantics (such as UnsafePointer), and there are hybrid >>>>>> value types that contain references to data that isn't part of >>>>>> the value (an Array<Class>, for instance). >>>>>> >>>>>> -Joe >>>>> >>>>> +1 >>>>> >>>>> I'd think that both "PureValue" and "PureReference" would be >>>>> useful. Isn't it the mixed types that make for tricky mutation >>>>> rules & serialization? >>>> >>>> I also like Joe’s idea. It fits with the direction in Swift of attaching >>>> semantics, not just syntax, to protocols. >>>> >>>> I was thinking of something pretty similar to your PureReference >>>> idea, but slightly different. Pure / immutable references have >>>> value semantics. With that in mind I was thinking of an >>>> ImmutableObject protocol which would inherit from both AnyObject >>>> and PureValue. >>>> >>>> >>>>> _______________________________________________ >>>>> swift-evolution mailing list >>>>> [email protected] >>>>> https://lists.swift.org/mailman/listinfo/swift-evolution > > -- > Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
