{"action":"opened","number":157,"pull_request":{"url":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/157","id":105347154,"html_url":"https://github.com/BurntSushi/quickcheck/pull/157","diff_url":"https://github.com/BurntSushi/quickcheck/pull/157.diff","patch_url":"https://github.com/BurntSushi/quickcheck/pull/157.patch","issue_url":"https://api.github.com/repos/BurntSushi/quickcheck/issues/157","number":157,"state":"open","locked":false,"title":"Handle non-terminating shrinkers in shrink_failure","user":{"login":"JacekLach","id":1210649,"avatar_url":"https://avatars.githubusercontent.com/u/1210649?v=3","gravatar_id":"","url":"https://api.github.com/users/JacekLach","html_url":"https://github.com/JacekLach","followers_url":"https://api.github.com/users/JacekLach/followers","following_url":"https://api.github.com/users/JacekLach/following{/other_user}","gists_url":"https://api.github.com/users/JacekLach/gists{/gist_id}","starred_url":"https://api.github.com/users/JacekLach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacekLach/subscriptions","organizations_url":"https://api.github.com/users/JacekLach/orgs","repos_url":"https://api.github.com/users/JacekLach/repos","events_url":"https://api.github.com/users/JacekLach/events{/privacy}","received_events_url":"https://api.github.com/users/JacekLach/received_events","type":"User","site_admin":false},"body":"Rather than failing with a stack overflow, if we hit an arbitrary\r\ndepth, we report the most simplified form, and note that shrinking\r\ndoes not seem to terminate.\r\n\r\nThis is a more generic alternative to #139, and should address common cases of #133.\r\n\r\nBefore this is ready to merge (assuming it's the approach you want to go with), we need to decide what a reasonable default recursion limit (maximum depth) is. Currently it's hardcoded to 1000 in an embarrassing fashion. I'm not sure what the best way of exposing it to configuration in `QuickCheck<G>` is; perhaps it should just be an additional argument to `.result()`, passed in by `quicktest<A>`?\r\n\r\n\r\nDisclaimer: this is the first piece of Rust I've ever written, and was mostly done so that I have something to experiment with. So I might be missing something obvious, doing something really wrong, etc; you should probably review it more closely than something from an experienced rust dev. But hey, it compiled and passed tests! ","created_at":"2017-02-09T02:13:21Z","updated_at":"2017-02-09T02:13:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/157/commits","review_comments_url":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/157/comments","review_comment_url":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/comments{/number}","comments_url":"https://api.github.com/repos/BurntSushi/quickcheck/issues/157/comments","statuses_url":"https://api.github.com/repos/BurntSushi/quickcheck/statuses/73eac0b70c4e44272a21d342673207816e764986","head":{"label":"JacekLach:feature/fail-misbehaving-shrinkers","ref":"feature/fail-misbehaving-shrinkers","sha":"73eac0b70c4e44272a21d342673207816e764986","user":{"login":"JacekLach","id":1210649,"avatar_url":"https://avatars.githubusercontent.com/u/1210649?v=3","gravatar_id":"","url":"https://api.github.com/users/JacekLach","html_url":"https://github.com/JacekLach","followers_url":"https://api.github.com/users/JacekLach/followers","following_url":"https://api.github.com/users/JacekLach/following{/other_user}","gists_url":"https://api.github.com/users/JacekLach/gists{/gist_id}","starred_url":"https://api.github.com/users/JacekLach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacekLach/subscriptions","organizations_url":"https://api.github.com/users/JacekLach/orgs","repos_url":"https://api.github.com/users/JacekLach/repos","events_url":"https://api.github.com/users/JacekLach/events{/privacy}","received_events_url":"https://api.github.com/users/JacekLach/received_events","type":"User","site_admin":false},"repo":{"id":81397018,"name":"quickcheck","full_name":"JacekLach/quickcheck","owner":{"login":"JacekLach","id":1210649,"avatar_url":"https://avatars.githubusercontent.com/u/1210649?v=3","gravatar_id":"","url":"https://api.github.com/users/JacekLach","html_url":"https://github.com/JacekLach","followers_url":"https://api.github.com/users/JacekLach/followers","following_url":"https://api.github.com/users/JacekLach/following{/other_user}","gists_url":"https://api.github.com/users/JacekLach/gists{/gist_id}","starred_url":"https://api.github.com/users/JacekLach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacekLach/subscriptions","organizations_url":"https://api.github.com/users/JacekLach/orgs","repos_url":"https://api.github.com/users/JacekLach/repos","events_url":"https://api.github.com/users/JacekLach/events{/privacy}","received_events_url":"https://api.github.com/users/JacekLach/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/JacekLach/quickcheck","description":"QuickCheck for Rust (with shrinking).","fork":true,"url":"https://api.github.com/repos/JacekLach/quickcheck","forks_url":"https://api.github.com/repos/JacekLach/quickcheck/forks","keys_url":"https://api.github.com/repos/JacekLach/quickcheck/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JacekLach/quickcheck/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JacekLach/quickcheck/teams","hooks_url":"https://api.github.com/repos/JacekLach/quickcheck/hooks","issue_events_url":"https://api.github.com/repos/JacekLach/quickcheck/issues/events{/number}","events_url":"https://api.github.com/repos/JacekLach/quickcheck/events","assignees_url":"https://api.github.com/repos/JacekLach/quickcheck/assignees{/user}","branches_url":"https://api.github.com/repos/JacekLach/quickcheck/branches{/branch}","tags_url":"https://api.github.com/repos/JacekLach/quickcheck/tags","blobs_url":"https://api.github.com/repos/JacekLach/quickcheck/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JacekLach/quickcheck/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JacekLach/quickcheck/git/refs{/sha}","trees_url":"https://api.github.com/repos/JacekLach/quickcheck/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JacekLach/quickcheck/statuses/{sha}","languages_url":"https://api.github.com/repos/JacekLach/quickcheck/languages","stargazers_url":"https://api.github.com/repos/JacekLach/quickcheck/stargazers","contributors_url":"https://api.github.com/repos/JacekLach/quickcheck/contributors","subscribers_url":"https://api.github.com/repos/JacekLach/quickcheck/subscribers","subscription_url":"https://api.github.com/repos/JacekLach/quickcheck/subscription","commits_url":"https://api.github.com/repos/JacekLach/quickcheck/commits{/sha}","git_commits_url":"https://api.github.com/repos/JacekLach/quickcheck/git/commits{/sha}","comments_url":"https://api.github.com/repos/JacekLach/quickcheck/comments{/number}","issue_comment_url":"https://api.github.com/repos/JacekLach/quickcheck/issues/comments{/number}","contents_url":"https://api.github.com/repos/JacekLach/quickcheck/contents/{+path}","compare_url":"https://api.github.com/repos/JacekLach/quickcheck/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JacekLach/quickcheck/merges","archive_url":"https://api.github.com/repos/JacekLach/quickcheck/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JacekLach/quickcheck/downloads","issues_url":"https://api.github.com/repos/JacekLach/quickcheck/issues{/number}","pulls_url":"https://api.github.com/repos/JacekLach/quickcheck/pulls{/number}","milestones_url":"https://api.github.com/repos/JacekLach/quickcheck/milestones{/number}","notifications_url":"https://api.github.com/repos/JacekLach/quickcheck/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JacekLach/quickcheck/labels{/name}","releases_url":"https://api.github.com/repos/JacekLach/quickcheck/releases{/id}","deployments_url":"https://api.github.com/repos/JacekLach/quickcheck/deployments","created_at":"2017-02-09T01:58:22Z","updated_at":"2017-02-09T01:58:23Z","pushed_at":"2017-02-09T02:08:42Z","git_url":"git://github.com/JacekLach/quickcheck.git","ssh_url":"git@github.com:JacekLach/quickcheck.git","clone_url":"https://github.com/JacekLach/quickcheck.git","svn_url":"https://github.com/JacekLach/quickcheck","homepage":null,"size":583,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"BurntSushi:master","ref":"master","sha":"2083e797bb004387249340e3cd45370d262e5cab","user":{"login":"BurntSushi","id":456674,"avatar_url":"https://avatars.githubusercontent.com/u/456674?v=3","gravatar_id":"","url":"https://api.github.com/users/BurntSushi","html_url":"https://github.com/BurntSushi","followers_url":"https://api.github.com/users/BurntSushi/followers","following_url":"https://api.github.com/users/BurntSushi/following{/other_user}","gists_url":"https://api.github.com/users/BurntSushi/gists{/gist_id}","starred_url":"https://api.github.com/users/BurntSushi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BurntSushi/subscriptions","organizations_url":"https://api.github.com/users/BurntSushi/orgs","repos_url":"https://api.github.com/users/BurntSushi/repos","events_url":"https://api.github.com/users/BurntSushi/events{/privacy}","received_events_url":"https://api.github.com/users/BurntSushi/received_events","type":"User","site_admin":false},"repo":{"id":17559913,"name":"quickcheck","full_name":"BurntSushi/quickcheck","owner":{"login":"BurntSushi","id":456674,"avatar_url":"https://avatars.githubusercontent.com/u/456674?v=3","gravatar_id":"","url":"https://api.github.com/users/BurntSushi","html_url":"https://github.com/BurntSushi","followers_url":"https://api.github.com/users/BurntSushi/followers","following_url":"https://api.github.com/users/BurntSushi/following{/other_user}","gists_url":"https://api.github.com/users/BurntSushi/gists{/gist_id}","starred_url":"https://api.github.com/users/BurntSushi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BurntSushi/subscriptions","organizations_url":"https://api.github.com/users/BurntSushi/orgs","repos_url":"https://api.github.com/users/BurntSushi/repos","events_url":"https://api.github.com/users/BurntSushi/events{/privacy}","received_events_url":"https://api.github.com/users/BurntSushi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/BurntSushi/quickcheck","description":"QuickCheck for Rust (with shrinking).","fork":false,"url":"https://api.github.com/repos/BurntSushi/quickcheck","forks_url":"https://api.github.com/repos/BurntSushi/quickcheck/forks","keys_url":"https://api.github.com/repos/BurntSushi/quickcheck/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BurntSushi/quickcheck/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BurntSushi/quickcheck/teams","hooks_url":"https://api.github.com/repos/BurntSushi/quickcheck/hooks","issue_events_url":"https://api.github.com/repos/BurntSushi/quickcheck/issues/events{/number}","events_url":"https://api.github.com/repos/BurntSushi/quickcheck/events","assignees_url":"https://api.github.com/repos/BurntSushi/quickcheck/assignees{/user}","branches_url":"https://api.github.com/repos/BurntSushi/quickcheck/branches{/branch}","tags_url":"https://api.github.com/repos/BurntSushi/quickcheck/tags","blobs_url":"https://api.github.com/repos/BurntSushi/quickcheck/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BurntSushi/quickcheck/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BurntSushi/quickcheck/git/refs{/sha}","trees_url":"https://api.github.com/repos/BurntSushi/quickcheck/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BurntSushi/quickcheck/statuses/{sha}","languages_url":"https://api.github.com/repos/BurntSushi/quickcheck/languages","stargazers_url":"https://api.github.com/repos/BurntSushi/quickcheck/stargazers","contributors_url":"https://api.github.com/repos/BurntSushi/quickcheck/contributors","subscribers_url":"https://api.github.com/repos/BurntSushi/quickcheck/subscribers","subscription_url":"https://api.github.com/repos/BurntSushi/quickcheck/subscription","commits_url":"https://api.github.com/repos/BurntSushi/quickcheck/commits{/sha}","git_commits_url":"https://api.github.com/repos/BurntSushi/quickcheck/git/commits{/sha}","comments_url":"https://api.github.com/repos/BurntSushi/quickcheck/comments{/number}","issue_comment_url":"https://api.github.com/repos/BurntSushi/quickcheck/issues/comments{/number}","contents_url":"https://api.github.com/repos/BurntSushi/quickcheck/contents/{+path}","compare_url":"https://api.github.com/repos/BurntSushi/quickcheck/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BurntSushi/quickcheck/merges","archive_url":"https://api.github.com/repos/BurntSushi/quickcheck/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BurntSushi/quickcheck/downloads","issues_url":"https://api.github.com/repos/BurntSushi/quickcheck/issues{/number}","pulls_url":"https://api.github.com/repos/BurntSushi/quickcheck/pulls{/number}","milestones_url":"https://api.github.com/repos/BurntSushi/quickcheck/milestones{/number}","notifications_url":"https://api.github.com/repos/BurntSushi/quickcheck/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BurntSushi/quickcheck/labels{/name}","releases_url":"https://api.github.com/repos/BurntSushi/quickcheck/releases{/id}","deployments_url":"https://api.github.com/repos/BurntSushi/quickcheck/deployments","created_at":"2014-03-09T07:29:09Z","updated_at":"2017-02-08T20:10:39Z","pushed_at":"2017-01-20T18:07:38Z","git_url":"git://github.com/BurntSushi/quickcheck.git","ssh_url":"git@github.com:BurntSushi/quickcheck.git","clone_url":"https://github.com/BurntSushi/quickcheck.git","svn_url":"https://github.com/BurntSushi/quickcheck","homepage":null,"size":583,"stargazers_count":500,"watchers_count":500,"language":"Rust","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":52,"mirror_url":null,"open_issues_count":29,"forks":52,"open_issues":29,"watchers":500,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/157"},"html":{"href":"https://github.com/BurntSushi/quickcheck/pull/157"},"issue":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/issues/157"},"comments":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/issues/157/comments"},"review_comments":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/157/comments"},"review_comment":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/pulls/157/commits"},"statuses":{"href":"https://api.github.com/repos/BurntSushi/quickcheck/statuses/73eac0b70c4e44272a21d342673207816e764986"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":59,"deletions":9,"changed_files":2}}
{"actor":{"display_login":"JacekLach"}}