{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/1238","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1238/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1238/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1238/events","html_url":"https://github.com/rust-lang/rfcs/pull/1238","id":99268372,"number":1238,"title":"Nonparametric dropck","user":{"login":"pnkfelix","id":173127,"avatar_url":"https://avatars.githubusercontent.com/u/173127?v=3","gravatar_id":"","url":"https://api.github.com/users/pnkfelix","html_url":"https://github.com/pnkfelix","followers_url":"https://api.github.com/users/pnkfelix/followers","following_url":"https://api.github.com/users/pnkfelix/following{/other_user}","gists_url":"https://api.github.com/users/pnkfelix/gists{/gist_id}","starred_url":"https://api.github.com/users/pnkfelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pnkfelix/subscriptions","organizations_url":"https://api.github.com/users/pnkfelix/orgs","repos_url":"https://api.github.com/users/pnkfelix/repos","events_url":"https://api.github.com/users/pnkfelix/events{/privacy}","received_events_url":"https://api.github.com/users/pnkfelix/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/T-lang","name":"T-lang","color":"bfd4f2"},{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/T-libs","name":"T-libs","color":"bfd4f2"}],"state":"open","locked":false,"assignee":{"login":"pnkfelix","id":173127,"avatar_url":"https://avatars.githubusercontent.com/u/173127?v=3","gravatar_id":"","url":"https://api.github.com/users/pnkfelix","html_url":"https://github.com/pnkfelix","followers_url":"https://api.github.com/users/pnkfelix/followers","following_url":"https://api.github.com/users/pnkfelix/following{/other_user}","gists_url":"https://api.github.com/users/pnkfelix/gists{/gist_id}","starred_url":"https://api.github.com/users/pnkfelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pnkfelix/subscriptions","organizations_url":"https://api.github.com/users/pnkfelix/orgs","repos_url":"https://api.github.com/users/pnkfelix/repos","events_url":"https://api.github.com/users/pnkfelix/events{/privacy}","received_events_url":"https://api.github.com/users/pnkfelix/received_events","type":"User","site_admin":false},"milestone":null,"comments":23,"created_at":"2015-08-05T18:30:09Z","updated_at":"2015-08-21T05:35:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1238","html_url":"https://github.com/rust-lang/rfcs/pull/1238","diff_url":"https://github.com/rust-lang/rfcs/pull/1238.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/1238.patch"},"body":"### Summary\r\n\r\nRevise the Drop Check (`dropck`) part of Rust's static analyses in two ways.  In the context of this RFC, these revisions are respectively named `cannot-assume-parametricity` and `unguarded-escape-hatch`.\r\n\r\n  1. `cannot-assume-parametricity` (CAP): Make `dropck` analysis stop relying on parametricity of type-parameters.\r\n\r\n  2. `unguarded-escape-hatch` (UGEH): Add an attribute (with some name starting with \"unsafe\") that a library designer can attach to a `drop` implementation that will allow a destructor to side-step the `dropck`'s constraints (unsafely).\r\n\r\n[rendered draft](https://github.com/pnkfelix/rfcs/blob/nonparametric-dropck/text/0000-nonparametric-dropck.md)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/133294173","html_url":"https://github.com/rust-lang/rfcs/pull/1238#issuecomment-133294173","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1238","id":133294173,"user":{"login":"llogiq","id":4200835,"avatar_url":"https://avatars.githubusercontent.com/u/4200835?v=3","gravatar_id":"","url":"https://api.github.com/users/llogiq","html_url":"https://github.com/llogiq","followers_url":"https://api.github.com/users/llogiq/followers","following_url":"https://api.github.com/users/llogiq/following{/other_user}","gists_url":"https://api.github.com/users/llogiq/gists{/gist_id}","starred_url":"https://api.github.com/users/llogiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llogiq/subscriptions","organizations_url":"https://api.github.com/users/llogiq/orgs","repos_url":"https://api.github.com/users/llogiq/repos","events_url":"https://api.github.com/users/llogiq/events{/privacy}","received_events_url":"https://api.github.com/users/llogiq/received_events","type":"User","site_admin":false},"created_at":"2015-08-21T05:35:23Z","updated_at":"2015-08-21T05:35:23Z","body":"@glaebhoerl If I have understood the problem correctly, parametricity is not sufficient for dropck soundness even in current Rust."}}