{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/6305","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/6305/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/6305/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/6305/events","html_url":"https://github.com/dotnet/roslyn/pull/6305","id":113206985,"number":6305,"title":"Scanner Peep.","user":{"login":"AdamSpeight2008","id":900107,"avatar_url":"https://avatars.githubusercontent.com/u/900107?v=3","gravatar_id":"","url":"https://api.github.com/users/AdamSpeight2008","html_url":"https://github.com/AdamSpeight2008","followers_url":"https://api.github.com/users/AdamSpeight2008/followers","following_url":"https://api.github.com/users/AdamSpeight2008/following{/other_user}","gists_url":"https://api.github.com/users/AdamSpeight2008/gists{/gist_id}","starred_url":"https://api.github.com/users/AdamSpeight2008/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AdamSpeight2008/subscriptions","organizations_url":"https://api.github.com/users/AdamSpeight2008/orgs","repos_url":"https://api.github.com/users/AdamSpeight2008/repos","events_url":"https://api.github.com/users/AdamSpeight2008/events{/privacy}","received_events_url":"https://api.github.com/users/AdamSpeight2008/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/4%20-%20In%20Review","name":"4 - In Review","color":"CCCCCC"},{"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-already-signed","name":"cla-already-signed","color":"009800"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Community","name":"Community","color":"009800"}],"state":"closed","locked":false,"assignee":{"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},"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/4","html_url":"https://github.com/dotnet/roslyn/milestones/1.2","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/4/labels","id":937402,"number":4,"title":"1.2","description":"This is our 1.2 Milestone.\r\n\r\n<!---\r\n@huboard:{\"order\":2.0}\r\n-->\r\n","creator":{"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},"open_issues":575,"closed_issues":209,"state":"open","created_at":"2015-01-15T20:48:55Z","updated_at":"2015-12-07T01:38:20Z","due_on":null,"closed_at":null},"comments":35,"created_at":"2015-10-25T05:10:03Z","updated_at":"2015-12-07T01:38:20Z","closed_at":"2015-12-07T01:38:20Z","pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/6305","html_url":"https://github.com/dotnet/roslyn/pull/6305","diff_url":"https://github.com/dotnet/roslyn/pull/6305.diff","patch_url":"https://github.com/dotnet/roslyn/pull/6305.patch"},"body":"[Compiler VB Scanner] Implement Peep and usage within the scanner.\r\n* ScannerXML\r\n* Scanner\r\n* ScannerInterpolatedString\r\n\r\n`Peep` is a integration of the contents of `CanGet` and `Peek` as these often appear in close proximity.  By combining them the source code is shorter, and potentially slightly quicker as the 'ch` value can be cached, and thus reused later. Reducing repetition of multiple function calls.\r\n(On my machine time to run the tests reduced from 21mins to 20mins) \r\n\r\nNote: `Peep` is similar to a `TryParse` function but it implements different semantics in the `false` case, where it preserves the existing value contain in `ch`\r\n\r\nThere may be some potential reduction in the number of temporary char variables, with closer examination, but this can be left for another PR. "},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/162386520","html_url":"https://github.com/dotnet/roslyn/pull/6305#issuecomment-162386520","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/6305","id":162386520,"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},"created_at":"2015-12-07T01:38:20Z","updated_at":"2015-12-07T01:38:20Z","body":"@AdamSpeight2008 I don't provide the test code because I'm not trying to get this PR into Roslyn.\r\n\r\nClosing due to lack of evidence on performance as described. I'll keep monitoring this PR in case you change your mind about testing."}}