{"action":"opened","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/23021","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/23021/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/23021/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/23021/events","html_url":"https://github.com/rust-lang/rust/issues/23021","id":59759263,"number":23021,"title":"The error message isn't accurate when missing trait implement","user":{"login":"laijs","id":125671,"avatar_url":"https://avatars.githubusercontent.com/u/125671?v=3","gravatar_id":"","url":"https://api.github.com/users/laijs","html_url":"https://github.com/laijs","followers_url":"https://api.github.com/users/laijs/followers","following_url":"https://api.github.com/users/laijs/following{/other_user}","gists_url":"https://api.github.com/users/laijs/gists{/gist_id}","starred_url":"https://api.github.com/users/laijs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laijs/subscriptions","organizations_url":"https://api.github.com/users/laijs/orgs","repos_url":"https://api.github.com/users/laijs/repos","events_url":"https://api.github.com/users/laijs/events{/privacy}","received_events_url":"https://api.github.com/users/laijs/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-04T07:14:46Z","updated_at":"2015-03-04T07:14:46Z","closed_at":null,"body":"```rust\r\ntrait TA { fn ta(&self) { println!(\"Default TA\"); } }\r\ntrait TB: TA { fn tb(&self) { println!(\"Default TB\"); } }\r\n\r\ntrait AutoTA: TB {}\r\nimpl<T:AutoTA> TA for T { fn ta(&self) { println!(\"AutoTA\"); } }\r\n\r\nstruct A;\r\nimpl TB for A {}\r\n```\r\nThe above code misses impl  ```TA``` for ```A```, but the compiler reports\r\n```error: the trait `AutoTA` is not implemented for the type `A` [E0277]```\r\n\r\nEven worse, when a new piece of code is added:\r\n```rust\r\ntrait AutoAutoTA: TB {}\r\nimpl<T: AutoAutoTA> AutoTA for T {}\r\n```\r\nthe comiler reports:\r\n```error: the trait `AutoAutoTA` is not implemented for the type `A` [E0277]```\r\n\r\nThese error messages aren't accurate. example, the last implies that the only way to fix it is to impl the AutoAutoTA.\r\n\r\nI hope the compiler just report the direct reason. it should report:\r\n```error: the trait `TA` is not implemented for the type `A` [E0277]```\r\n"}}