> On Dec 13, 2015, at 11:08 PM, Dave Abrahams via swift-dev 
> <swift-dev@swift.org> wrote:
> 
>> 
>> On Dec 13, 2015, at 12:43 PM, Wojciech Czekalski <wczekal...@me.com 
>> <mailto:wczekal...@me.com>> wrote:
>> 
>> I agree with Brent that offering description on Arrays where it "shouldn't 
>> be presented to the user in raw form, ever, so the use case here is 
>> debugging”  is misleading. 
> 
> I think it's a bit too absolute—there are a few applications where users 
> could interact with the raw form of an array but these are mostly programming 
> tools ;-).  I don't, however see how Dmitri's statement is in any way 
> misleading.
> 
>> Is there any specific reason for them to offer it? 
> 
> Who is "them" and what is "it?"

Sorry, I didn't read carefully enough: I think you're saying that it's 
misleading for Arrays to offer a description property.

I don't think so, personally, but I understand why you'd say so.  If the 
problem is that you don't understand why ContiguousArray and ArraySlice have 
slightly different behavior for debugDescription, it's because an unadorned 
array literal is already an Array, but ContiguousArray and ArraySlice need some 
help to be coerced, and ideally, a debugDescription should be interpreted by 
the compiler as an identical copy of the receiver.

> 
>> Also, there is a slightly difference in representation of description and 
>> debugDescription for ContiguousArray and ArraySlice. If the motivation 
>> behind it is unclear it might be worth to remove either the difference in 
>> implementation or the conformance to CustomStringConvertible altogether.
> 
> Removing the conformance would make their printed representation useless 
> and/or needlessly verbose depending on how you did it (try it yourself).
> 
> Dmitri's example is the driving use-case: when you print a string you want 
> the literal contents, but when you print an array of strings you want the 
> strings quoted, and to get the quoted representation of the elements when 
> they are strings you need String(reflecting: arrayElement), not 
> String(arrayElement).
> 
>> 
>> -Wojtek
>> 
>>> Wiadomość napisana przez Dave Abrahams via swift-dev <swift-dev@swift.org 
>>> <mailto:swift-dev@swift.org>> w dniu 12.12.2015, o godz. 21:41:
>>> 
>>> 
>>> 
>>> Sent from my moss-covered three-handled family gradunza
>>> 
>>>> On Dec 12, 2015, at 9:09 AM, Brent Royal-Gordon via swift-dev 
>>>> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:
>>>> 
>>>> It would similarly be nice if String.init(_: Any) were instead 
>>>> String.init(_: CustomStringConvertible), and passing something to it that 
>>>> wasn’t convertible was an error.
>>> 
>>> Why would that be nice?  It is an explicit goal that every type can be 
>>> represented as a string, whatever its conformance a, FWIW
>>> _______________________________________________
>>> swift-dev mailing list
>>> swift-dev@swift.org <mailto:swift-dev@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-dev 
>>> <https://lists.swift.org/mailman/listinfo/swift-dev>
>> 
> 
> -Dave
> 
> 
> 
>  _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org <mailto:swift-dev@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-dev 
> <https://lists.swift.org/mailman/listinfo/swift-dev>
-Dave



_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to