{"action":"created","issue":{"url":"https://api.github.com/repos/ReSwift/ReSwift/issues/335","repository_url":"https://api.github.com/repos/ReSwift/ReSwift","labels_url":"https://api.github.com/repos/ReSwift/ReSwift/issues/335/labels{/name}","comments_url":"https://api.github.com/repos/ReSwift/ReSwift/issues/335/comments","events_url":"https://api.github.com/repos/ReSwift/ReSwift/issues/335/events","html_url":"https://github.com/ReSwift/ReSwift/pull/335","id":311510796,"number":335,"title":"update to Xcode 9.3/Swift 4.1","user":{"login":"DivineDominion","id":59080,"avatar_url":"https://avatars3.githubusercontent.com/u/59080?v=4","gravatar_id":"","url":"https://api.github.com/users/DivineDominion","html_url":"https://github.com/DivineDominion","followers_url":"https://api.github.com/users/DivineDominion/followers","following_url":"https://api.github.com/users/DivineDominion/following{/other_user}","gists_url":"https://api.github.com/users/DivineDominion/gists{/gist_id}","starred_url":"https://api.github.com/users/DivineDominion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DivineDominion/subscriptions","organizations_url":"https://api.github.com/users/DivineDominion/orgs","repos_url":"https://api.github.com/users/DivineDominion/repos","events_url":"https://api.github.com/users/DivineDominion/events{/privacy}","received_events_url":"https://api.github.com/users/DivineDominion/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-04-05T08:07:54Z","updated_at":"2018-04-05T16:17:35Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/ReSwift/ReSwift/pulls/335","html_url":"https://github.com/ReSwift/ReSwift/pull/335","diff_url":"https://github.com/ReSwift/ReSwift/pull/335.diff","patch_url":"https://github.com/ReSwift/ReSwift/pull/335.patch"},"body":"Pretty straightforward except the last commit: it compiled, but crashed during runtime because the `Middleware<StateType>` could not be casted to `Middleware<TestStringAppState>` (line breaks by me):\r\n\r\n```\r\n2018-04-05 10:00:46.912595+0200 xctest[46272:853770] Could not cast value of type\r\n'((ReSwift.Action) -> (), () -> Swift.Optional<ReSwift.StateType>) -> ((ReSwift.Action) -> ()) -> (ReSwift.Action) -> ()' (0x106e53af8) to \r\n'((ReSwift.Action) -> (), () -> Swift.Optional<ReSwift_macOSTests.TestStringAppState>) -> ((ReSwift.Action) -> ()) -> (ReSwift.Action) -> ()' (0x106e53d28).\r\n```\r\n\r\nIt suffices if one middleware is explicity cast ` as Middleware<TestStringAppState>`, but I found that rather weird-looking. It also works when written as `[a,b,c] as [Middleware<TestStringAppState>]`. But I figured it'd be a nicer practice to cast the more generic middlewares to the specific type individually. I'm open to change this, though, since it's quite noisy.\r\n\r\nGuess that's the new [\"Conditional conformance\"](https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md) thing. Not sure what to do about it. Sounds like a bug to me."},"comment":{"url":"https://api.github.com/repos/ReSwift/ReSwift/issues/comments/378992532","html_url":"https://github.com/ReSwift/ReSwift/pull/335#issuecomment-378992532","issue_url":"https://api.github.com/repos/ReSwift/ReSwift/issues/335","id":378992532,"user":{"login":"mjarvis","id":609274,"avatar_url":"https://avatars2.githubusercontent.com/u/609274?v=4","gravatar_id":"","url":"https://api.github.com/users/mjarvis","html_url":"https://github.com/mjarvis","followers_url":"https://api.github.com/users/mjarvis/followers","following_url":"https://api.github.com/users/mjarvis/following{/other_user}","gists_url":"https://api.github.com/users/mjarvis/gists{/gist_id}","starred_url":"https://api.github.com/users/mjarvis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjarvis/subscriptions","organizations_url":"https://api.github.com/users/mjarvis/orgs","repos_url":"https://api.github.com/users/mjarvis/repos","events_url":"https://api.github.com/users/mjarvis/events{/privacy}","received_events_url":"https://api.github.com/users/mjarvis/received_events","type":"User","site_admin":false},"created_at":"2018-04-05T16:17:35Z","updated_at":"2018-04-05T16:17:35Z","author_association":"CONTRIBUTOR","body":"@DivineDominion If you wrap the changes in `#if swift(>=4.1) #else #endif` They'll be able to compile & run tests on the older xcode versions for TravisCI, then we can update it to 9.3 when they deploy the stable version."}}
{"actor":{"display_login":"mjarvis"}}