{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/1180","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1180/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1180/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1180/events","html_url":"https://github.com/rust-lang/rfcs/pull/1180","id":91817648,"number":1180,"title":"Propose `Interior<T>` data-type, to allow moves out of the dropped value during the drop hook.","user":{"login":"aidancully","id":503301,"avatar_url":"https://avatars.githubusercontent.com/u/503301?v=3","gravatar_id":"","url":"https://api.github.com/users/aidancully","html_url":"https://github.com/aidancully","followers_url":"https://api.github.com/users/aidancully/followers","following_url":"https://api.github.com/users/aidancully/following{/other_user}","gists_url":"https://api.github.com/users/aidancully/gists{/gist_id}","starred_url":"https://api.github.com/users/aidancully/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aidancully/subscriptions","organizations_url":"https://api.github.com/users/aidancully/orgs","repos_url":"https://api.github.com/users/aidancully/repos","events_url":"https://api.github.com/users/aidancully/events{/privacy}","received_events_url":"https://api.github.com/users/aidancully/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"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-06-29T14:18:54Z","updated_at":"2015-07-04T17:20:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1180","html_url":"https://github.com/rust-lang/rfcs/pull/1180","diff_url":"https://github.com/rust-lang/rfcs/pull/1180.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/1180.patch"},"body":"[rendered](https://github.com/aidancully/rfcs/blob/interior/text/0000-interior.md)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/118535904","html_url":"https://github.com/rust-lang/rfcs/pull/1180#issuecomment-118535904","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1180","id":118535904,"user":{"login":"Diggsey","id":451321,"avatar_url":"https://avatars.githubusercontent.com/u/451321?v=3","gravatar_id":"","url":"https://api.github.com/users/Diggsey","html_url":"https://github.com/Diggsey","followers_url":"https://api.github.com/users/Diggsey/followers","following_url":"https://api.github.com/users/Diggsey/following{/other_user}","gists_url":"https://api.github.com/users/Diggsey/gists{/gist_id}","starred_url":"https://api.github.com/users/Diggsey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Diggsey/subscriptions","organizations_url":"https://api.github.com/users/Diggsey/orgs","repos_url":"https://api.github.com/users/Diggsey/repos","events_url":"https://api.github.com/users/Diggsey/events{/privacy}","received_events_url":"https://api.github.com/users/Diggsey/received_events","type":"User","site_admin":false},"created_at":"2015-07-04T17:20:38Z","updated_at":"2015-07-04T17:20:38Z","body":"@eddyb It's rare if you continue to use old `Drop` for destructors which only need to borrow self. A `DropValue` destructor *should* consume self - if it doesn't do that via destructuring then it should call `mem::forget()`.\r\n\r\nIt seems like a fairly straightforward choice - either you special-case destructors in the compiler, or you require the programmer to manually consume `self`. Interior<T> in this proposal is just a very round-about way of doing the former."}}