{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/8821","repository_url":"https://api.github.com/repos/dotnet/roslyn","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/8821/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/8821/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/8821/events","html_url":"https://github.com/dotnet/roslyn/issues/8821","id":134367937,"number":8821,"title":"What are the semantics of 'goto case' in the presence of pattern-matching?","user":{"login":"gafter","id":3804346,"avatar_url":"https://avatars.githubusercontent.com/u/3804346?v=3","gravatar_id":"","url":"https://api.github.com/users/gafter","html_url":"https://github.com/gafter","followers_url":"https://api.github.com/users/gafter/followers","following_url":"https://api.github.com/users/gafter/following{/other_user}","gists_url":"https://api.github.com/users/gafter/gists{/gist_id}","starred_url":"https://api.github.com/users/gafter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gafter/subscriptions","organizations_url":"https://api.github.com/users/gafter/orgs","repos_url":"https://api.github.com/users/gafter/repos","events_url":"https://api.github.com/users/gafter/events{/privacy}","received_events_url":"https://api.github.com/users/gafter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Compilers","name":"Area-Compilers","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Language%20Design","name":"Area-Language Design","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/New%20Language%20Feature%20-%20Pattern%20Matching","name":"New Language Feature - Pattern Matching","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/15","html_url":"https://github.com/dotnet/roslyn/milestones/2.0%20(RC)","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/15/labels","id":1571383,"number":15,"title":"2.0 (RC)","description":"","creator":{"login":"davkean","id":1103906,"avatar_url":"https://avatars.githubusercontent.com/u/1103906?v=3","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":0,"state":"open","created_at":"2016-02-08T21:53:59Z","updated_at":"2016-02-18T21:37:48Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2016-02-17T18:58:36Z","updated_at":"2016-02-19T12:12:41Z","closed_at":null,"body":"We need a language specification for the intended behavior of `goto case` when the switch contains pattern-matching constructs. And then we need to implement that."},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/186192212","html_url":"https://github.com/dotnet/roslyn/issues/8821#issuecomment-186192212","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/8821","id":186192212,"user":{"login":"HaloFour","id":10102290,"avatar_url":"https://avatars.githubusercontent.com/u/10102290?v=3","gravatar_id":"","url":"https://api.github.com/users/HaloFour","html_url":"https://github.com/HaloFour","followers_url":"https://api.github.com/users/HaloFour/followers","following_url":"https://api.github.com/users/HaloFour/following{/other_user}","gists_url":"https://api.github.com/users/HaloFour/gists{/gist_id}","starred_url":"https://api.github.com/users/HaloFour/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HaloFour/subscriptions","organizations_url":"https://api.github.com/users/HaloFour/orgs","repos_url":"https://api.github.com/users/HaloFour/repos","events_url":"https://api.github.com/users/HaloFour/events{/privacy}","received_events_url":"https://api.github.com/users/HaloFour/received_events","type":"User","site_admin":false},"created_at":"2016-02-19T12:12:41Z","updated_at":"2016-02-19T12:12:41Z","body":"@DavidArno \r\n\r\n> I'm assuming that - given the existence of this issue - your assertion is far from certain.\r\n\r\nWhile probable this isn't the first time it's come up:  #7703 \r\n\r\nAnd that does make sense as you can interpret `goto case` to specify the value today in `switch` since the value and the label are one in the same.\r\n\r\nI like the idea of having pattern matching permeate the language, and adding support to existing language constructs like `if`, `is` and `switch` seems to be a good way to accomplish that.  Very specifically I see utility patterns being used to augment existing `switch` statements with range comparisons and the like, a feature requested numerous times (one VB.NET already supports).  That said I agree that `switch` was crufty before it was even adopted in C# and I would not be opposed to a cleaner statement form of pattern matching on top of `switch`.  Although if `switch` scratches the itch I guess that would become unlikely."}}