I’m adding runtime functionality to support optional casts and ran into some 
Optional to String conversion behavior that is currently somewhat accidental—it 
will break when I add functionality. I want to understand the desired behavior 
before doing extra work to fix it.

Currently swift does this:

> print(Int?(3))
Optional(3)
> print(String?("meow"))
Optional("meow")

I think swift should do this:

> print(Int?(3))
3
> print(String?("meow"))
"meow"
> debugPrint(Int?(3))
Optional(3)
> debugPrint(String?("meow"))
Optional("meow")

When a value already knows how to represent itself as a string, I don't think 
that the string "Optional" belongs in the textual representation.

When debugging data structures, it makes sense to include the "Optional" 
indicator.

What was the intention here and what do people think is the desired behavior?

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

Reply via email to