{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/csharplang/issues/188","repository_url":"https://api.github.com/repos/dotnet/csharplang","labels_url":"https://api.github.com/repos/dotnet/csharplang/issues/188/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/csharplang/issues/188/comments","events_url":"https://api.github.com/repos/dotnet/csharplang/issues/188/events","html_url":"https://github.com/dotnet/csharplang/issues/188","id":210342429,"number":188,"title":"Champion \"readonly for locals and parameters\"","user":{"login":"gafter","id":3804346,"avatar_url":"https://avatars3.githubusercontent.com/u/3804346?v=4","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":[{"id":513192173,"url":"https://api.github.com/repos/dotnet/csharplang/labels/Proposal","name":"Proposal","color":"fbca04","default":false},{"id":536034773,"url":"https://api.github.com/repos/dotnet/csharplang/labels/Proposal%20champion","name":"Proposal champion","color":"fef2c0","default":false},{"id":825314298,"url":"https://api.github.com/repos/dotnet/csharplang/labels/Smallish%20Feature","name":"Smallish Feature","color":"e99695","default":false}],"state":"open","locked":false,"assignee":{"login":"stephentoub","id":2642209,"avatar_url":"https://avatars0.githubusercontent.com/u/2642209?v=4","gravatar_id":"","url":"https://api.github.com/users/stephentoub","html_url":"https://github.com/stephentoub","followers_url":"https://api.github.com/users/stephentoub/followers","following_url":"https://api.github.com/users/stephentoub/following{/other_user}","gists_url":"https://api.github.com/users/stephentoub/gists{/gist_id}","starred_url":"https://api.github.com/users/stephentoub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephentoub/subscriptions","organizations_url":"https://api.github.com/users/stephentoub/orgs","repos_url":"https://api.github.com/users/stephentoub/repos","events_url":"https://api.github.com/users/stephentoub/events{/privacy}","received_events_url":"https://api.github.com/users/stephentoub/received_events","type":"User","site_admin":false},"assignees":[{"login":"stephentoub","id":2642209,"avatar_url":"https://avatars0.githubusercontent.com/u/2642209?v=4","gravatar_id":"","url":"https://api.github.com/users/stephentoub","html_url":"https://github.com/stephentoub","followers_url":"https://api.github.com/users/stephentoub/followers","following_url":"https://api.github.com/users/stephentoub/following{/other_user}","gists_url":"https://api.github.com/users/stephentoub/gists{/gist_id}","starred_url":"https://api.github.com/users/stephentoub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephentoub/subscriptions","organizations_url":"https://api.github.com/users/stephentoub/orgs","repos_url":"https://api.github.com/users/stephentoub/repos","events_url":"https://api.github.com/users/stephentoub/events{/privacy}","received_events_url":"https://api.github.com/users/stephentoub/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/csharplang/milestones/9","html_url":"https://github.com/dotnet/csharplang/milestone/9","labels_url":"https://api.github.com/repos/dotnet/csharplang/milestones/9/labels","id":2339244,"number":9,"title":"X.X candidate","description":"These candidate features could be included in any major or minor release.","creator":{"login":"gafter","id":3804346,"avatar_url":"https://avatars3.githubusercontent.com/u/3804346?v=4","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},"open_issues":9,"closed_issues":0,"state":"open","created_at":"2017-02-21T23:50:06Z","updated_at":"2017-12-12T20:53:34Z","due_on":"2099-01-01T08:00:00Z","closed_at":null},"comments":132,"created_at":"2017-02-26T19:48:31Z","updated_at":"2018-02-05T22:42:19Z","closed_at":null,"author_association":"MEMBER","body":"- [ ] Proposal added\r\n- [ ] Discussed in LDM\r\n- [ ] Decision in LDM\r\n- [ ] Finalized (done, rejected, inactive)\r\n- [ ] Spec'ed\r\n\r\nSee also https://github.com/dotnet/roslyn/issues/115\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/csharplang/issues/comments/363246487","html_url":"https://github.com/dotnet/csharplang/issues/188#issuecomment-363246487","issue_url":"https://api.github.com/repos/dotnet/csharplang/issues/188","id":363246487,"user":{"login":"quinmars","id":5264714,"avatar_url":"https://avatars3.githubusercontent.com/u/5264714?v=4","gravatar_id":"","url":"https://api.github.com/users/quinmars","html_url":"https://github.com/quinmars","followers_url":"https://api.github.com/users/quinmars/followers","following_url":"https://api.github.com/users/quinmars/following{/other_user}","gists_url":"https://api.github.com/users/quinmars/gists{/gist_id}","starred_url":"https://api.github.com/users/quinmars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quinmars/subscriptions","organizations_url":"https://api.github.com/users/quinmars/orgs","repos_url":"https://api.github.com/users/quinmars/repos","events_url":"https://api.github.com/users/quinmars/events{/privacy}","received_events_url":"https://api.github.com/users/quinmars/received_events","type":"User","site_admin":false},"created_at":"2018-02-05T22:42:19Z","updated_at":"2018-02-05T22:42:19Z","author_association":"NONE","body":"@drewnoakes, I actually do not expect any performance improvements here. If a value is quasi-readonly, i.e., it's not permuted in the local scope of a function (and that's what we are talking about), it shouldn't be to complicated for the compiler to recognize that and perform those potential optimizations, even without a new keyword.\r\n\r\nThe major benefit of this proposal isn't the possibility to prevent values or references to be altered accidently. I think that this is a rather small source of error or bugs. It isn't even about documenting inmutable values or unchangeable references. Once/if `let` will be available it becomes the new `var`.\r\nEstimated more than 90 percent of my local `var`s could be replace by `let`. And in the view places were not, the `var` keyword would draw attention on the mutable nature of the declared variable. Hence it'd make it easier for the reader to follow the code flow."}}
{"actor":{"display_login":"quinmars"}}