{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/22426","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/22426/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/22426/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/22426/events","html_url":"https://github.com/rust-lang/rust/issues/22426","id":57865133,"number":22426,"title":"Panic: \"internal compiler error: ident only path should have been covered already\"","user":{"login":"insaneinside","id":4030926,"avatar_url":"https://avatars.githubusercontent.com/u/4030926?v=3","gravatar_id":"","url":"https://api.github.com/users/insaneinside","html_url":"https://github.com/insaneinside","followers_url":"https://api.github.com/users/insaneinside/followers","following_url":"https://api.github.com/users/insaneinside/following{/other_user}","gists_url":"https://api.github.com/users/insaneinside/gists{/gist_id}","starred_url":"https://api.github.com/users/insaneinside/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/insaneinside/subscriptions","organizations_url":"https://api.github.com/users/insaneinside/orgs","repos_url":"https://api.github.com/users/insaneinside/repos","events_url":"https://api.github.com/users/insaneinside/events{/privacy}","received_events_url":"https://api.github.com/users/insaneinside/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rust/labels/I-ICE","name":"I-ICE","color":"e10c02"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-02-16T23:42:10Z","updated_at":"2015-02-23T22:10:48Z","closed_at":null,"body":"This error is triggered by providing type parameters to a generic type in a `match` pattern.\r\n\r\ne.g.\r\n```rust\r\n#![crate_type = \"staticlib\"]\r\n\r\npub struct Foo<T>(T, T);\r\n\r\nimpl<T> Foo<T> {\r\n    fn foo(&self) {\r\n        match *self {\r\n            Foo<T>(x, y) => println!(\"Goodbye, World!\")\r\n        }\r\n    }\r\n}\r\n```\r\n[Playpen here.](http://is.gd/qUaQmI)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/75648115","html_url":"https://github.com/rust-lang/rust/issues/22426#issuecomment-75648115","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/22426","id":75648115,"user":{"login":"bombless","id":1296393,"avatar_url":"https://avatars.githubusercontent.com/u/1296393?v=3","gravatar_id":"","url":"https://api.github.com/users/bombless","html_url":"https://github.com/bombless","followers_url":"https://api.github.com/users/bombless/followers","following_url":"https://api.github.com/users/bombless/following{/other_user}","gists_url":"https://api.github.com/users/bombless/gists{/gist_id}","starred_url":"https://api.github.com/users/bombless/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bombless/subscriptions","organizations_url":"https://api.github.com/users/bombless/orgs","repos_url":"https://api.github.com/users/bombless/repos","events_url":"https://api.github.com/users/bombless/events{/privacy}","received_events_url":"https://api.github.com/users/bombless/received_events","type":"User","site_admin":false},"created_at":"2015-02-23T22:10:48Z","updated_at":"2015-02-23T22:10:48Z","body":">Right, detecting the misplaced `<` and giving a proper error message that guides one to use the  `Foo::<T>`  form would be the best.\r\n\r\nAgreed.\r\nDo you think we may wait for a `>` for that error message?\r\nI think it would be great if we can directly point out `Foo<T>` should be `Foo::<T>`.\r\nAs it is a status we are doing error handling, we cannot make mess that much.\r\nAnd if we meet something that don't even look like a path, then we just stop reading tokens and point out token `<` is legal.\r\n\r\nThis kind of code may be hard to maintain, though.\r\n\r\n"}}