> On Sep 12, 2016, at 4:48 PM, Greg Parker via swift-evolution
> <[email protected]> wrote:
>
>
>> On Sep 12, 2016, at 3:39 PM, Douglas Gregor <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> As an amendment to SE-0140, Swift will produce a warning when an optional
>> value is converted to a value of type Any, e.g.,
>>
>> MyClass().doSomething(stringOpt) // warning: optional value of type
>> ‘String?’ is converted to an ‘Any’
>> // note: use ‘!’ to force-unwrap the
>> optional
>> // note: use ‘??’ to provide a
>> default value if the optional is nil
>> // note: use ‘as Any’ to silence this
>> warning
>>
>> Such a warning will address most accidental injections of optional values
>> into Any, and the core team felt that this addresses accidental boxing of
>> optional values better than leaving the opaque object types to fail fast in
>> Objective-C code that inspects them (e.g., see this message
>> <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160905/026961.html>
>> for a negative review partly on these grounds).
>
> Is there a recommended pattern for defining a callee that actually wants to
> accept anything including optionals with no warning for the caller?
One could write it as a generic function:
func identity<T>(_ value: T) -> T { … }
- Doug_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution