{"action":"created","issue":{"url":"https://api.github.com/repos/Instagram/IGListKit/issues/51","repository_url":"https://api.github.com/repos/Instagram/IGListKit","labels_url":"https://api.github.com/repos/Instagram/IGListKit/issues/51/labels{/name}","comments_url":"https://api.github.com/repos/Instagram/IGListKit/issues/51/comments","events_url":"https://api.github.com/repos/Instagram/IGListKit/issues/51/events","html_url":"https://github.com/Instagram/IGListKit/pull/51","id":182419417,"number":51,"title":"IGListAdapter: Fix not returning early when collectionView/dataSource is nil and completion is nil","user":{"login":"benasher44","id":1120429,"avatar_url":"https://avatars.githubusercontent.com/u/1120429?v=3","gravatar_id":"","url":"https://api.github.com/users/benasher44","html_url":"https://github.com/benasher44","followers_url":"https://api.github.com/users/benasher44/followers","following_url":"https://api.github.com/users/benasher44/following{/other_user}","gists_url":"https://api.github.com/users/benasher44/gists{/gist_id}","starred_url":"https://api.github.com/users/benasher44/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benasher44/subscriptions","organizations_url":"https://api.github.com/users/benasher44/orgs","repos_url":"https://api.github.com/users/benasher44/repos","events_url":"https://api.github.com/users/benasher44/events{/privacy}","received_events_url":"https://api.github.com/users/benasher44/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Instagram/IGListKit/labels/CLA%20Signed","name":"CLA Signed","color":"70C050"}],"state":"open","locked":false,"assignee":{"login":"rnystrom","id":739696,"avatar_url":"https://avatars.githubusercontent.com/u/739696?v=3","gravatar_id":"","url":"https://api.github.com/users/rnystrom","html_url":"https://github.com/rnystrom","followers_url":"https://api.github.com/users/rnystrom/followers","following_url":"https://api.github.com/users/rnystrom/following{/other_user}","gists_url":"https://api.github.com/users/rnystrom/gists{/gist_id}","starred_url":"https://api.github.com/users/rnystrom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rnystrom/subscriptions","organizations_url":"https://api.github.com/users/rnystrom/orgs","repos_url":"https://api.github.com/users/rnystrom/repos","events_url":"https://api.github.com/users/rnystrom/events{/privacy}","received_events_url":"https://api.github.com/users/rnystrom/received_events","type":"User","site_admin":false},"assignees":[{"login":"rnystrom","id":739696,"avatar_url":"https://avatars.githubusercontent.com/u/739696?v=3","gravatar_id":"","url":"https://api.github.com/users/rnystrom","html_url":"https://github.com/rnystrom","followers_url":"https://api.github.com/users/rnystrom/followers","following_url":"https://api.github.com/users/rnystrom/following{/other_user}","gists_url":"https://api.github.com/users/rnystrom/gists{/gist_id}","starred_url":"https://api.github.com/users/rnystrom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rnystrom/subscriptions","organizations_url":"https://api.github.com/users/rnystrom/orgs","repos_url":"https://api.github.com/users/rnystrom/repos","events_url":"https://api.github.com/users/rnystrom/events{/privacy}","received_events_url":"https://api.github.com/users/rnystrom/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2016-10-12T02:22:29Z","updated_at":"2016-10-12T15:06:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Instagram/IGListKit/pulls/51","html_url":"https://github.com/Instagram/IGListKit/pull/51","diff_url":"https://github.com/Instagram/IGListKit/pull/51.diff","patch_url":"https://github.com/Instagram/IGListKit/pull/51.patch"},"body":"## Changes in this pull request\r\n\r\n- I ran the static analyzer, and it found a case in `performUpdatesAnimated:completion:` where it looks like we meant to bail out early if the `collectionView` or `dataSource` is nil, but it only does so if `completion` is provided.\r\n- Fixed a spelling error in nearby documentation\r\n\r\n## Pull request checklist\r\n\r\n- [x] All tests pass. Demo project builds and runs.\r\n- [x] I added tests, an experiment, or detailed why my change isn't tested.\r\n- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/CONTRIBUTING.md)\r\n\r\n### Notes\r\n- There is one other analyzer warning, but it seems to be making an incorrect assumption. In any case, it's not something I can fix quickly (requires more time spent staring at IGListDiff.mm).\r\n- A ticket should be opened to add static analysis to .travis.yml. I'lll do this soonish, unless someone beats me to it!\r\n\r\n### Questions\r\n- I could add a test for this, but this project is annotated well enough with nullability annotations that it's easy for the analyzer to catch bugs like this (it could tell there was a case where the nil `collectionView` might make it somewhere it shouldn't have). Should I add a test anyway?\r\n- I had to add the IGListKitTests scheme manually to run the tests. Should I make it a shared scheme and commit it?"},"comment":{"url":"https://api.github.com/repos/Instagram/IGListKit/issues/comments/253240691","html_url":"https://github.com/Instagram/IGListKit/pull/51#issuecomment-253240691","issue_url":"https://api.github.com/repos/Instagram/IGListKit/issues/51","id":253240691,"user":{"login":"ocrickard","id":857665,"avatar_url":"https://avatars.githubusercontent.com/u/857665?v=3","gravatar_id":"","url":"https://api.github.com/users/ocrickard","html_url":"https://github.com/ocrickard","followers_url":"https://api.github.com/users/ocrickard/followers","following_url":"https://api.github.com/users/ocrickard/following{/other_user}","gists_url":"https://api.github.com/users/ocrickard/gists{/gist_id}","starred_url":"https://api.github.com/users/ocrickard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocrickard/subscriptions","organizations_url":"https://api.github.com/users/ocrickard/orgs","repos_url":"https://api.github.com/users/ocrickard/repos","events_url":"https://api.github.com/users/ocrickard/events{/privacy}","received_events_url":"https://api.github.com/users/ocrickard/received_events","type":"User","site_admin":false},"created_at":"2016-10-12T15:06:35Z","updated_at":"2016-10-12T15:06:35Z","body":"lol, nice find!"}}
{"actor":{"display_login":"ocrickard"}}