{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/809","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/809/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/809/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/809/events","html_url":"https://github.com/rust-lang/rfcs/pull/809","id":56542688,"number":809,"title":"overloaded-`box` and placement-`in`","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":[],"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":58,"created_at":"2015-02-04T15:37:37Z","updated_at":"2015-02-11T09:42:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/809","html_url":"https://github.com/rust-lang/rfcs/pull/809","diff_url":"https://github.com/rust-lang/rfcs/pull/809.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/809.patch"},"body":"Summary:\r\n\r\n  * Change placement-new syntax from: `box (<place-expr>) <expr>` instead to: `in <place-expr> { <block> }` (Note: was ~~`in (<place-expr>) <expr>`~~ previously)\r\n\r\n  * Change `box <expr>` to an overloaded operator that chooses its implementation based on the expected type.\r\n\r\n  * Use unstable traits in `core::ops` for both operators, so that libstd can provide support for the overloaded operators; the traits are unstable so that the language designers are free to revise the underlying protocol in the future post 1.0.\r\n\r\n[(rendered)](https://github.com/pnkfelix/rfcs/blob/fsk-box-and-in-for-stdlib-rfc/text/0000-box-and-in-for-stdlib.md)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/73855109","html_url":"https://github.com/rust-lang/rfcs/pull/809#issuecomment-73855109","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/809","id":73855109,"user":{"login":"petrochenkov","id":5751617,"avatar_url":"https://avatars.githubusercontent.com/u/5751617?v=3","gravatar_id":"","url":"https://api.github.com/users/petrochenkov","html_url":"https://github.com/petrochenkov","followers_url":"https://api.github.com/users/petrochenkov/followers","following_url":"https://api.github.com/users/petrochenkov/following{/other_user}","gists_url":"https://api.github.com/users/petrochenkov/gists{/gist_id}","starred_url":"https://api.github.com/users/petrochenkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petrochenkov/subscriptions","organizations_url":"https://api.github.com/users/petrochenkov/orgs","repos_url":"https://api.github.com/users/petrochenkov/repos","events_url":"https://api.github.com/users/petrochenkov/events{/privacy}","received_events_url":"https://api.github.com/users/petrochenkov/received_events","type":"User","site_admin":false},"created_at":"2015-02-11T09:42:49Z","updated_at":"2015-02-11T09:42:49Z","body":"@eddyb \r\n`v.back()` / `map[k]` / `arena.alloc()` return `&out` references?\r\nI think it would solve the usability problem as good as a specialized placement operator.\r\nBut `in LHS {RHS}` / `LHS <~ RHS` provides some kind of finalizer for LHS that runs if RHS throws an exception, if I remember the previous RFC correctly. Is this behaviour possible to reproduce with `&out` references?"}}