> On Jun 10, 2016, at 5:47 PM, John McCall via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> On Jun 10, 2016, at 2:22 PM, Austin Zheng via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> Hello swift-evolutioneers,
>> 
>> Here's an idea. It's technically additive, but it's small and I think it 
>> fits in well with Swift 3's goals, one of which is to establish API 
>> conventions.
>> 
>> Right now, you can declare a function, type member, etc and mark it using 
>> "@available(*, unavailable, renamed:"someNewName()")". Doing so causes a 
>> compile-time error if the user tries to use that member, and if you provide 
>> the new name a fix-it is even generated telling you to use the new name.
>> 
>> However, you can (and still need to) provide an implementation (e.g. 
>> function body). You can just stick a fatalError() inside and be done with 
>> it, but my question is, is an impl even necessary?
>> 
>> My pitch is very simple: the declaration of any member marked with 
>> @available(*, unavailable), or in other words marked as unavailable 
>> regardless of platform or version, should be allowed to omit the 
>> implementation.
>> 
>> So, instead of:
>> 
>> @available(*, unavailable, renamed:"someNewAPI()")
>> public func someOldAPI() -> Int { fatalError() }
>> 
>> You can just have:
>> 
>> @available(*, unavailable, renamed:"someNewAPI()")
>> public func someOldAPI() -> Int
>> 
>> The intent is, in my opinion, clearer for the latter and it feels less 
>> kludgy.
>> 
>> What do people think? Are there any potential barriers (implementation or 
>> semantics) that would preclude this?
> 
> I actually just consider it a bug that you're require to implement an 
> always-unavailable function.  We can take it through evolution anyway, though.

I agree with John on both parts: it’s a bug, but considering it in evolution 
makes sense.

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

Reply via email to