> On May 4, 2016, at 4:20 PM, David Sweeris <[email protected]> wrote: > > ... And 30 seconds later I realized that "PureReference" could be fulfilled > by something with only static or computed properties.
Any class that only had immutable value semantic members would fulfill PureReference. They would not need to be static or computed. > > > Sent from my iPhone > >> On May 4, 2016, at 16:16, David Sweeris via swift-evolution >> <[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. >> >> 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 >> _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
