{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/22074","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/22074/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/22074/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/22074/events","html_url":"https://github.com/rust-lang/rust/pull/22074","id":56934566,"number":22074,"title":"Implement equality constraints in where clauses","user":{"login":"jroesch","id":696509,"avatar_url":"https://avatars.githubusercontent.com/u/696509?v=3","gravatar_id":"","url":"https://api.github.com/users/jroesch","html_url":"https://github.com/jroesch","followers_url":"https://api.github.com/users/jroesch/followers","following_url":"https://api.github.com/users/jroesch/following{/other_user}","gists_url":"https://api.github.com/users/jroesch/gists{/gist_id}","starred_url":"https://api.github.com/users/jroesch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jroesch/subscriptions","organizations_url":"https://api.github.com/users/jroesch/orgs","repos_url":"https://api.github.com/users/jroesch/repos","events_url":"https://api.github.com/users/jroesch/events{/privacy}","received_events_url":"https://api.github.com/users/jroesch/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars.githubusercontent.com/u/155238?v=3","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"milestone":null,"comments":9,"created_at":"2015-02-08T01:47:05Z","updated_at":"2015-04-27T20:01:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/22074","html_url":"https://github.com/rust-lang/rust/pull/22074","diff_url":"https://github.com/rust-lang/rust/pull/22074.diff","patch_url":"https://github.com/rust-lang/rust/pull/22074.patch"},"body":"This fixes #20041. I was thinking that the necessary machinery this required must be in place for associated types. So I went ahead and implemented the parsing and translation in collect when I was bored last night. \r\n\r\nI currently have syntax of the form: `where A = T` since it seemed cleaner, as well as consistent with the associated types syntax of `Foo<A=T>` while not introducing ambiguity. If that is not what we want I'm happy to use the `==` syntax originally present in the RFC.\r\n\r\nr? @nikomatsakis \r\n\r\nI think this should cover everything let me know otherwise.\r\n\r\ncc @darinmorrison"},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/96797705","html_url":"https://github.com/rust-lang/rust/pull/22074#issuecomment-96797705","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/22074","id":96797705,"user":{"login":"jnicklas","id":134,"avatar_url":"https://avatars.githubusercontent.com/u/134?v=3","gravatar_id":"","url":"https://api.github.com/users/jnicklas","html_url":"https://github.com/jnicklas","followers_url":"https://api.github.com/users/jnicklas/followers","following_url":"https://api.github.com/users/jnicklas/following{/other_user}","gists_url":"https://api.github.com/users/jnicklas/gists{/gist_id}","starred_url":"https://api.github.com/users/jnicklas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnicklas/subscriptions","organizations_url":"https://api.github.com/users/jnicklas/orgs","repos_url":"https://api.github.com/users/jnicklas/repos","events_url":"https://api.github.com/users/jnicklas/events{/privacy}","received_events_url":"https://api.github.com/users/jnicklas/received_events","type":"User","site_admin":false},"created_at":"2015-04-27T20:01:02Z","updated_at":"2015-04-27T20:01:02Z","body":"The change from `==` to `=` would make it more awkward to express negative type equality bounds, which might be desirable in the future. `where T != Foo` reads quite nicely, but if we go with a single equals sign here, we'd have to do something strange like `where T = !Foo`."}}