[swift-evolution] [Pich] allow embed type declaration in protocol & allow throw in property getter/setter

Benjamin Spratling bspratling at mac.com
Fri Oct 7 12:59:12 CDT 2016


+1 nested types in protocols
And nested protocols in types.

-1 on throwing properties.


> On Oct 7, 2016, at 10:30 AM, Cao Jiannan via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 1. allow embed type declaration in protocol
> e.g.:
> 
> protocol URLProvider {
>    fun url() throws -> URL
> }
> 
> extension URLProvider {
>    enum Error: Swift.Error {
>         invalidBaseURL
>         invalidPath
>         invalidQuery
>         invalidFragment
>    }
> }
> 
> 
>     func parseURL() throws -> URL {
>        throw URLProvider.Error.invalidBaseURL
>    }
> 
> 2. allow throw in property getter/setter
> 
> e.g.:
> 
> struct myURLProvider: URLProvider {
>    var url: throws -> URL {
> 	try URL(baseURL: baseURL, path: path, query: query, fragment: fragment)
>    }
> }
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list