I have some code that implements an HTTP server. You use it like this:

server["/some/path"] =
{ inReq in
    return .ok(.json(["key" : "value"]))
}

".ok" is a case in the HttpResponse enum.

The subscript on "server" above looks like this:

class HttpServer {
    typealias Handler = (HttpRequest) -> HttpResponse

    subscript (path: String) -> Handler?
    {
        get { return nil }
        set ( newValue )
        {
            ...store in dictionary of path:Handler...
        }
    }
}

Unfortunately, in Swift 3, I get "Cannot assign value of type '(_) -> _' to 
type 'HttpServer.Handler?'"

It seems the type inference is working differently? I tried { (inReq: 
HttpRequest) in ... }, but I got the same error with a slightly different type 
signature.

Can anyone tell me what's changed?

TIA,

-- 
Rick Mann
rm...@latencyzero.com


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

Reply via email to