{"action":"created","issue":{"url":"https://api.github.com/repos/racket/typed-racket/issues/381","repository_url":"https://api.github.com/repos/racket/typed-racket","labels_url":"https://api.github.com/repos/racket/typed-racket/issues/381/labels{/name}","comments_url":"https://api.github.com/repos/racket/typed-racket/issues/381/comments","events_url":"https://api.github.com/repos/racket/typed-racket/issues/381/events","html_url":"https://github.com/racket/typed-racket/pull/381","id":163578586,"number":381,"title":"implement sc->constraints for recursive-sc","user":{"login":"AlexKnauth","id":6600123,"avatar_url":"https://avatars.githubusercontent.com/u/6600123?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexKnauth","html_url":"https://github.com/AlexKnauth","followers_url":"https://api.github.com/users/AlexKnauth/followers","following_url":"https://api.github.com/users/AlexKnauth/following{/other_user}","gists_url":"https://api.github.com/users/AlexKnauth/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKnauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKnauth/subscriptions","organizations_url":"https://api.github.com/users/AlexKnauth/orgs","repos_url":"https://api.github.com/users/AlexKnauth/repos","events_url":"https://api.github.com/users/AlexKnauth/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKnauth/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2016-07-03T20:31:44Z","updated_at":"2016-07-04T16:43:40Z","closed_at":"2016-07-04T02:47:52Z","pull_request":{"url":"https://api.github.com/repos/racket/typed-racket/pulls/381","html_url":"https://github.com/racket/typed-racket/pull/381","diff_url":"https://github.com/racket/typed-racket/pull/381.diff","patch_url":"https://github.com/racket/typed-racket/pull/381.patch"},"body":"This pull requests implements the `sc->constraints` generic method for the `recursive-sc` struct.\r\n\r\nThis changes the error in the `wrap` package mentioned in issue #375 here (https://github.com/racket/typed-racket/issues/375#issuecomment-228580196),\r\n\r\nFrom this:\r\n```\r\n. . ../../../../../../../../../../Applications/Racket/2016-06-16/Racket v6.5.0.5/collects/racket/private/generic.rkt:488:0: \r\nsc->constraints: not implemented for\r\n(recursive-sc\r\n (list #<syntax scan1681546> #<syntax scan1681547> #<syntax scan1681548>)\r\n (list (or/sc2 (list (simple-contract #<syntax:/Applications/Racket/2016-06-16/Racket v6.5.0.5/share/pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt...\r\n```\r\nTo this:\r\n```\r\n. Type Checker: Type (U Null (Pairof JsObject (∩ JsList (Listof HashTableTop)))) could not be converted to a contract: \r\nIntersection type contract contains more than 1 non-flat contract: (∩ JsList (Listof HashTableTop)) in: items-js\r\n```"},"comment":{"url":"https://api.github.com/repos/racket/typed-racket/issues/comments/230325857","html_url":"https://github.com/racket/typed-racket/pull/381#issuecomment-230325857","issue_url":"https://api.github.com/repos/racket/typed-racket/issues/381","id":230325857,"user":{"login":"AlexKnauth","id":6600123,"avatar_url":"https://avatars.githubusercontent.com/u/6600123?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexKnauth","html_url":"https://github.com/AlexKnauth","followers_url":"https://api.github.com/users/AlexKnauth/followers","following_url":"https://api.github.com/users/AlexKnauth/following{/other_user}","gists_url":"https://api.github.com/users/AlexKnauth/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKnauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKnauth/subscriptions","organizations_url":"https://api.github.com/users/AlexKnauth/orgs","repos_url":"https://api.github.com/users/AlexKnauth/repos","events_url":"https://api.github.com/users/AlexKnauth/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKnauth/received_events","type":"User","site_admin":false},"created_at":"2016-07-04T16:43:40Z","updated_at":"2016-07-04T16:43:40Z","body":"The `compute-constraints` function here\r\nhttps://github.com/racket/typed-racket/blob/583a752954b68e29e07a09b542203e2f9e00cbde/typed-racket-lib/typed-racket/static-contracts/instantiate.rkt#L84\r\nlooks like it might be the thing that's supposed to handle the `recursive-sc` case, should it use that? It's provided by the `internals` submodule of `instantiate.rkt`. It requires a max kind as an input, but in this case it's okay if one contract is non-flat, so should the max kind argument be `'impersonator`?"}}
{"actor":{"display_login":"AlexKnauth"}}