{"action":"closed","number":5021,"pull_request":{"url":"https://api.github.com/repos/elixir-lang/elixir/pulls/5021","id":77732401,"html_url":"https://github.com/elixir-lang/elixir/pull/5021","diff_url":"https://github.com/elixir-lang/elixir/pull/5021.diff","patch_url":"https://github.com/elixir-lang/elixir/pull/5021.patch","issue_url":"https://api.github.com/repos/elixir-lang/elixir/issues/5021","number":5021,"state":"closed","locked":false,"title":"Don't escape record literals on keyword conversion","user":{"login":"michalmuskala","id":477062,"avatar_url":"https://avatars.githubusercontent.com/u/477062?v=3","gravatar_id":"","url":"https://api.github.com/users/michalmuskala","html_url":"https://github.com/michalmuskala","followers_url":"https://api.github.com/users/michalmuskala/followers","following_url":"https://api.github.com/users/michalmuskala/following{/other_user}","gists_url":"https://api.github.com/users/michalmuskala/gists{/gist_id}","starred_url":"https://api.github.com/users/michalmuskala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michalmuskala/subscriptions","organizations_url":"https://api.github.com/users/michalmuskala/orgs","repos_url":"https://api.github.com/users/michalmuskala/repos","events_url":"https://api.github.com/users/michalmuskala/events{/privacy}","received_events_url":"https://api.github.com/users/michalmuskala/received_events","type":"User","site_admin":false},"body":"Literal values in records should not be escaped.\r\nThis lead to structs (and other non-literals in AST) being returned\r\nas AST, which was unexpected and incorrect.\r\n\r\nBefore:\r\n\r\n```elixir\r\ndefmodule Struct do\r\n  defstruct foo: nil\r\nend\r\ndefmodule Test do\r\n  import Record\r\n  defrecord :bar, data: %Struct{}\r\nend\r\n\r\niex> require Test\r\niex> Test.bar(Test.bar())\r\n[data: {:%{}, [], [__struct__: Struct, foo: nil]}]\r\n```\r\n\r\nAfter:\r\n\r\n```elixir\r\niex> require Test\r\niex> Test.bar(Test.bar())\r\n[data: %Struct{foo: nil}]\r\n```","created_at":"2016-07-17T10:45:25Z","updated_at":"2016-07-17T13:37:06Z","closed_at":"2016-07-17T13:37:06Z","merged_at":"2016-07-17T13:37:06Z","merge_commit_sha":"8e51a3d349e14cf512f7e6833cc7c044d9e1804a","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/elixir-lang/elixir/pulls/5021/commits","review_comments_url":"https://api.github.com/repos/elixir-lang/elixir/pulls/5021/comments","review_comment_url":"https://api.github.com/repos/elixir-lang/elixir/pulls/comments{/number}","comments_url":"https://api.github.com/repos/elixir-lang/elixir/issues/5021/comments","statuses_url":"https://api.github.com/repos/elixir-lang/elixir/statuses/59bb9e04d9d901e1d03477b21ae38dbe5d054cec","head":{"label":"michalmuskala:record-literals","ref":"record-literals","sha":"59bb9e04d9d901e1d03477b21ae38dbe5d054cec","user":{"login":"michalmuskala","id":477062,"avatar_url":"https://avatars.githubusercontent.com/u/477062?v=3","gravatar_id":"","url":"https://api.github.com/users/michalmuskala","html_url":"https://github.com/michalmuskala","followers_url":"https://api.github.com/users/michalmuskala/followers","following_url":"https://api.github.com/users/michalmuskala/following{/other_user}","gists_url":"https://api.github.com/users/michalmuskala/gists{/gist_id}","starred_url":"https://api.github.com/users/michalmuskala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michalmuskala/subscriptions","organizations_url":"https://api.github.com/users/michalmuskala/orgs","repos_url":"https://api.github.com/users/michalmuskala/repos","events_url":"https://api.github.com/users/michalmuskala/events{/privacy}","received_events_url":"https://api.github.com/users/michalmuskala/received_events","type":"User","site_admin":false},"repo":{"id":30253832,"name":"elixir","full_name":"michalmuskala/elixir","owner":{"login":"michalmuskala","id":477062,"avatar_url":"https://avatars.githubusercontent.com/u/477062?v=3","gravatar_id":"","url":"https://api.github.com/users/michalmuskala","html_url":"https://github.com/michalmuskala","followers_url":"https://api.github.com/users/michalmuskala/followers","following_url":"https://api.github.com/users/michalmuskala/following{/other_user}","gists_url":"https://api.github.com/users/michalmuskala/gists{/gist_id}","starred_url":"https://api.github.com/users/michalmuskala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michalmuskala/subscriptions","organizations_url":"https://api.github.com/users/michalmuskala/orgs","repos_url":"https://api.github.com/users/michalmuskala/repos","events_url":"https://api.github.com/users/michalmuskala/events{/privacy}","received_events_url":"https://api.github.com/users/michalmuskala/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/michalmuskala/elixir","description":"Elixir is a dynamic, functional language designed for building scalable and maintainable applications","fork":true,"url":"https://api.github.com/repos/michalmuskala/elixir","forks_url":"https://api.github.com/repos/michalmuskala/elixir/forks","keys_url":"https://api.github.com/repos/michalmuskala/elixir/keys{/key_id}","collaborators_url":"https://api.github.com/repos/michalmuskala/elixir/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/michalmuskala/elixir/teams","hooks_url":"https://api.github.com/repos/michalmuskala/elixir/hooks","issue_events_url":"https://api.github.com/repos/michalmuskala/elixir/issues/events{/number}","events_url":"https://api.github.com/repos/michalmuskala/elixir/events","assignees_url":"https://api.github.com/repos/michalmuskala/elixir/assignees{/user}","branches_url":"https://api.github.com/repos/michalmuskala/elixir/branches{/branch}","tags_url":"https://api.github.com/repos/michalmuskala/elixir/tags","blobs_url":"https://api.github.com/repos/michalmuskala/elixir/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/michalmuskala/elixir/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/michalmuskala/elixir/git/refs{/sha}","trees_url":"https://api.github.com/repos/michalmuskala/elixir/git/trees{/sha}","statuses_url":"https://api.github.com/repos/michalmuskala/elixir/statuses/{sha}","languages_url":"https://api.github.com/repos/michalmuskala/elixir/languages","stargazers_url":"https://api.github.com/repos/michalmuskala/elixir/stargazers","contributors_url":"https://api.github.com/repos/michalmuskala/elixir/contributors","subscribers_url":"https://api.github.com/repos/michalmuskala/elixir/subscribers","subscription_url":"https://api.github.com/repos/michalmuskala/elixir/subscription","commits_url":"https://api.github.com/repos/michalmuskala/elixir/commits{/sha}","git_commits_url":"https://api.github.com/repos/michalmuskala/elixir/git/commits{/sha}","comments_url":"https://api.github.com/repos/michalmuskala/elixir/comments{/number}","issue_comment_url":"https://api.github.com/repos/michalmuskala/elixir/issues/comments{/number}","contents_url":"https://api.github.com/repos/michalmuskala/elixir/contents/{+path}","compare_url":"https://api.github.com/repos/michalmuskala/elixir/compare/{base}...{head}","merges_url":"https://api.github.com/repos/michalmuskala/elixir/merges","archive_url":"https://api.github.com/repos/michalmuskala/elixir/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/michalmuskala/elixir/downloads","issues_url":"https://api.github.com/repos/michalmuskala/elixir/issues{/number}","pulls_url":"https://api.github.com/repos/michalmuskala/elixir/pulls{/number}","milestones_url":"https://api.github.com/repos/michalmuskala/elixir/milestones{/number}","notifications_url":"https://api.github.com/repos/michalmuskala/elixir/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/michalmuskala/elixir/labels{/name}","releases_url":"https://api.github.com/repos/michalmuskala/elixir/releases{/id}","deployments_url":"https://api.github.com/repos/michalmuskala/elixir/deployments","created_at":"2015-02-03T16:58:27Z","updated_at":"2016-02-09T19:56:36Z","pushed_at":"2016-07-17T11:14:43Z","git_url":"git://github.com/michalmuskala/elixir.git","ssh_url":"git@github.com:michalmuskala/elixir.git","clone_url":"https://github.com/michalmuskala/elixir.git","svn_url":"https://github.com/michalmuskala/elixir","homepage":"http://elixir-lang.org/","size":35072,"stargazers_count":0,"watchers_count":0,"language":"Elixir","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"elixir-lang:master","ref":"master","sha":"e38180c36db93720efd6100c4d6ab704efa4e867","user":{"login":"elixir-lang","id":1481354,"avatar_url":"https://avatars.githubusercontent.com/u/1481354?v=3","gravatar_id":"","url":"https://api.github.com/users/elixir-lang","html_url":"https://github.com/elixir-lang","followers_url":"https://api.github.com/users/elixir-lang/followers","following_url":"https://api.github.com/users/elixir-lang/following{/other_user}","gists_url":"https://api.github.com/users/elixir-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/elixir-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elixir-lang/subscriptions","organizations_url":"https://api.github.com/users/elixir-lang/orgs","repos_url":"https://api.github.com/users/elixir-lang/repos","events_url":"https://api.github.com/users/elixir-lang/events{/privacy}","received_events_url":"https://api.github.com/users/elixir-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":1234714,"name":"elixir","full_name":"elixir-lang/elixir","owner":{"login":"elixir-lang","id":1481354,"avatar_url":"https://avatars.githubusercontent.com/u/1481354?v=3","gravatar_id":"","url":"https://api.github.com/users/elixir-lang","html_url":"https://github.com/elixir-lang","followers_url":"https://api.github.com/users/elixir-lang/followers","following_url":"https://api.github.com/users/elixir-lang/following{/other_user}","gists_url":"https://api.github.com/users/elixir-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/elixir-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elixir-lang/subscriptions","organizations_url":"https://api.github.com/users/elixir-lang/orgs","repos_url":"https://api.github.com/users/elixir-lang/repos","events_url":"https://api.github.com/users/elixir-lang/events{/privacy}","received_events_url":"https://api.github.com/users/elixir-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/elixir-lang/elixir","description":"Elixir is a dynamic, functional language designed for building scalable and maintainable applications","fork":false,"url":"https://api.github.com/repos/elixir-lang/elixir","forks_url":"https://api.github.com/repos/elixir-lang/elixir/forks","keys_url":"https://api.github.com/repos/elixir-lang/elixir/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elixir-lang/elixir/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elixir-lang/elixir/teams","hooks_url":"https://api.github.com/repos/elixir-lang/elixir/hooks","issue_events_url":"https://api.github.com/repos/elixir-lang/elixir/issues/events{/number}","events_url":"https://api.github.com/repos/elixir-lang/elixir/events","assignees_url":"https://api.github.com/repos/elixir-lang/elixir/assignees{/user}","branches_url":"https://api.github.com/repos/elixir-lang/elixir/branches{/branch}","tags_url":"https://api.github.com/repos/elixir-lang/elixir/tags","blobs_url":"https://api.github.com/repos/elixir-lang/elixir/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elixir-lang/elixir/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elixir-lang/elixir/git/refs{/sha}","trees_url":"https://api.github.com/repos/elixir-lang/elixir/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elixir-lang/elixir/statuses/{sha}","languages_url":"https://api.github.com/repos/elixir-lang/elixir/languages","stargazers_url":"https://api.github.com/repos/elixir-lang/elixir/stargazers","contributors_url":"https://api.github.com/repos/elixir-lang/elixir/contributors","subscribers_url":"https://api.github.com/repos/elixir-lang/elixir/subscribers","subscription_url":"https://api.github.com/repos/elixir-lang/elixir/subscription","commits_url":"https://api.github.com/repos/elixir-lang/elixir/commits{/sha}","git_commits_url":"https://api.github.com/repos/elixir-lang/elixir/git/commits{/sha}","comments_url":"https://api.github.com/repos/elixir-lang/elixir/comments{/number}","issue_comment_url":"https://api.github.com/repos/elixir-lang/elixir/issues/comments{/number}","contents_url":"https://api.github.com/repos/elixir-lang/elixir/contents/{+path}","compare_url":"https://api.github.com/repos/elixir-lang/elixir/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elixir-lang/elixir/merges","archive_url":"https://api.github.com/repos/elixir-lang/elixir/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elixir-lang/elixir/downloads","issues_url":"https://api.github.com/repos/elixir-lang/elixir/issues{/number}","pulls_url":"https://api.github.com/repos/elixir-lang/elixir/pulls{/number}","milestones_url":"https://api.github.com/repos/elixir-lang/elixir/milestones{/number}","notifications_url":"https://api.github.com/repos/elixir-lang/elixir/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elixir-lang/elixir/labels{/name}","releases_url":"https://api.github.com/repos/elixir-lang/elixir/releases{/id}","deployments_url":"https://api.github.com/repos/elixir-lang/elixir/deployments","created_at":"2011-01-09T08:43:57Z","updated_at":"2016-07-17T07:24:53Z","pushed_at":"2016-07-17T13:37:06Z","git_url":"git://github.com/elixir-lang/elixir.git","ssh_url":"git@github.com:elixir-lang/elixir.git","clone_url":"https://github.com/elixir-lang/elixir.git","svn_url":"https://github.com/elixir-lang/elixir","homepage":"http://elixir-lang.org/","size":44670,"stargazers_count":7615,"watchers_count":7615,"language":"Elixir","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1035,"mirror_url":null,"open_issues_count":22,"forks":1035,"open_issues":22,"watchers":7615,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/elixir-lang/elixir/pulls/5021"},"html":{"href":"https://github.com/elixir-lang/elixir/pull/5021"},"issue":{"href":"https://api.github.com/repos/elixir-lang/elixir/issues/5021"},"comments":{"href":"https://api.github.com/repos/elixir-lang/elixir/issues/5021/comments"},"review_comments":{"href":"https://api.github.com/repos/elixir-lang/elixir/pulls/5021/comments"},"review_comment":{"href":"https://api.github.com/repos/elixir-lang/elixir/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/elixir-lang/elixir/pulls/5021/commits"},"statuses":{"href":"https://api.github.com/repos/elixir-lang/elixir/statuses/59bb9e04d9d901e1d03477b21ae38dbe5d054cec"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"josevalim","id":9582,"avatar_url":"https://avatars.githubusercontent.com/u/9582?v=3","gravatar_id":"","url":"https://api.github.com/users/josevalim","html_url":"https://github.com/josevalim","followers_url":"https://api.github.com/users/josevalim/followers","following_url":"https://api.github.com/users/josevalim/following{/other_user}","gists_url":"https://api.github.com/users/josevalim/gists{/gist_id}","starred_url":"https://api.github.com/users/josevalim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josevalim/subscriptions","organizations_url":"https://api.github.com/users/josevalim/orgs","repos_url":"https://api.github.com/users/josevalim/repos","events_url":"https://api.github.com/users/josevalim/events{/privacy}","received_events_url":"https://api.github.com/users/josevalim/received_events","type":"User","site_admin":false},"comments":2,"review_comments":4,"commits":1,"additions":41,"deletions":2,"changed_files":2}}
{"actor":{"display_login":"josevalim"}}