{"action":"closed","issue":{"url":"https://api.github.com/repos/golang/go/issues/13590","labels_url":"https://api.github.com/repos/golang/go/issues/13590/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/13590/comments","events_url":"https://api.github.com/repos/golang/go/issues/13590/events","html_url":"https://github.com/golang/go/issues/13590","id":121815050,"number":13590,"title":"go/ast: the position of \"range\" keyword is lost during parsing","user":{"login":"alandonovan","id":8433140,"avatar_url":"https://avatars.githubusercontent.com/u/8433140?v=3","gravatar_id":"","url":"https://api.github.com/users/alandonovan","html_url":"https://github.com/alandonovan","followers_url":"https://api.github.com/users/alandonovan/followers","following_url":"https://api.github.com/users/alandonovan/following{/other_user}","gists_url":"https://api.github.com/users/alandonovan/gists{/gist_id}","starred_url":"https://api.github.com/users/alandonovan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alandonovan/subscriptions","organizations_url":"https://api.github.com/users/alandonovan/orgs","repos_url":"https://api.github.com/users/alandonovan/repos","events_url":"https://api.github.com/users/alandonovan/events{/privacy}","received_events_url":"https://api.github.com/users/alandonovan/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"griesemer","id":8528975,"avatar_url":"https://avatars.githubusercontent.com/u/8528975?v=3","gravatar_id":"","url":"https://api.github.com/users/griesemer","html_url":"https://github.com/griesemer","followers_url":"https://api.github.com/users/griesemer/followers","following_url":"https://api.github.com/users/griesemer/following{/other_user}","gists_url":"https://api.github.com/users/griesemer/gists{/gist_id}","starred_url":"https://api.github.com/users/griesemer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/griesemer/subscriptions","organizations_url":"https://api.github.com/users/griesemer/orgs","repos_url":"https://api.github.com/users/griesemer/repos","events_url":"https://api.github.com/users/griesemer/events{/privacy}","received_events_url":"https://api.github.com/users/griesemer/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-12-11T23:48:44Z","updated_at":"2015-12-28T19:49:00Z","closed_at":"2015-12-28T19:49:00Z","body":"Although the AST does not record the entire concrete syntax, it does record most of the important tokens.  The position of the \"range\" token can't be reliably reconstructed from an ast.RangeStmt, and I need to use it to indicate the location of an implicit channel receive operation.  I propose to add a 'Range token.Pos' field to ast.RangeStmt and set it in the parser."}}