> 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

Reply via email to