{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/953","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/953/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/953/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/953/events","html_url":"https://github.com/rust-lang/rfcs/pull/953","id":60246412,"number":953,"title":"overloaded assignment operations `a += b`","user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":19,"created_at":"2015-03-08T08:00:20Z","updated_at":"2015-03-10T16:17:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/953","html_url":"https://github.com/rust-lang/rfcs/pull/953","diff_url":"https://github.com/rust-lang/rfcs/pull/953.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/953.patch"},"body":"[Rendered](https://github.com/japaric/rfcs/blob/op-assign/text/0000-op-assign.md)\r\n\r\n[Implementation](https://github.com/rust-lang/rust/pull/23171)\r\n\r\ncc @bjz @aturon @nikomatsakis "},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/78088602","html_url":"https://github.com/rust-lang/rfcs/pull/953#issuecomment-78088602","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/953","id":78088602,"user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"created_at":"2015-03-10T16:17:47Z","updated_at":"2015-03-10T16:17:47Z","body":"@Gankro That's operator abuse, because `|` is `BitOr` and `^` is `BitXor`, but the operation doesn't do what the trait documentation says. However, I don't think we can prevent people from doing it, even if we set the example of not abusing operators in the stdlib. (At least I'm glad that nobody has asked (yet) for `ShrAssign` to return a value, so they can hack it into the bind  operator `>>=`)\r\n\r\n@nikomatsakis Thanks for the example, I agree that taking RHS by value would lead to better performance in that case. Though I'd expect `vec1 += vec2` to be element-wise sum of `vec2` into `vec1` and not concatenation, but we already crossed that line by allowing `String`/`Vec` addition."}}