{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/832","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/832/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/832/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/832/events","html_url":"https://github.com/dotnet/roslyn/pull/832","id":58815102,"number":832,"title":"Improve exception filter parsing error recovery","user":{"login":"amcasey","id":10508071,"avatar_url":"https://avatars.githubusercontent.com/u/10508071?v=3","gravatar_id":"","url":"https://api.github.com/users/amcasey","html_url":"https://github.com/amcasey","followers_url":"https://api.github.com/users/amcasey/followers","following_url":"https://api.github.com/users/amcasey/following{/other_user}","gists_url":"https://api.github.com/users/amcasey/gists{/gist_id}","starred_url":"https://api.github.com/users/amcasey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amcasey/subscriptions","organizations_url":"https://api.github.com/users/amcasey/orgs","repos_url":"https://api.github.com/users/amcasey/repos","events_url":"https://api.github.com/users/amcasey/events{/privacy}","received_events_url":"https://api.github.com/users/amcasey/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/cla-not-required","name":"cla-not-required","color":"90EE90"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-02-24T22:21:37Z","updated_at":"2015-02-24T23:57:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/832","html_url":"https://github.com/dotnet/roslyn/pull/832","diff_url":"https://github.com/dotnet/roslyn/pull/832.diff","patch_url":"https://github.com/dotnet/roslyn/pull/832.patch"},"body":"When we originally introduced exception filters to C#, we used the if\r\nkeyword in the filter clause.  To avoid confusion with regular if\r\nstatements, we switched to using the when (contextual) keyword.\r\n\r\nUnfortunately, the if syntax was around long enough that code with that\r\nsyntax was stored in the source server database.  Now, when you try to\r\ndebug such files, they parse very badly.  In particular, there is a file\r\nin the debugger in which thousands of lines of text become skipped text\r\ntrivia and the resulting syntax tree results in an\r\nInsufficientExcecutionStackException whenever that file is displayed.\r\nThis makes it very difficult to inspect older dumps.\r\n\r\nA simple solution is to allow the if keyword and replace it with a when\r\nkeyword with an error attached.\r\n\r\nWith this change applied, the debugger crash is resolved."},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/75877728","html_url":"https://github.com/dotnet/roslyn/pull/832#issuecomment-75877728","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/832","id":75877728,"user":{"login":"jaredpar","id":146967,"avatar_url":"https://avatars.githubusercontent.com/u/146967?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredpar","html_url":"https://github.com/jaredpar","followers_url":"https://api.github.com/users/jaredpar/followers","following_url":"https://api.github.com/users/jaredpar/following{/other_user}","gists_url":"https://api.github.com/users/jaredpar/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredpar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredpar/subscriptions","organizations_url":"https://api.github.com/users/jaredpar/orgs","repos_url":"https://api.github.com/users/jaredpar/repos","events_url":"https://api.github.com/users/jaredpar/events{/privacy}","received_events_url":"https://api.github.com/users/jaredpar/received_events","type":"User","site_admin":false},"created_at":"2015-02-24T23:57:44Z","updated_at":"2015-02-24T23:57:44Z","body":"@amcasey but what is the crash?  I still don't know what the crash is.  I see nothing in this example which should cause a crash.  \r\n\r\n"}}