{"action":"created","issue":{"url":"https://api.github.com/repos/ethereum/solidity/issues/92","labels_url":"https://api.github.com/repos/ethereum/solidity/issues/92/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/solidity/issues/92/comments","events_url":"https://api.github.com/repos/ethereum/solidity/issues/92/events","html_url":"https://github.com/ethereum/solidity/issues/92","id":107974692,"number":92,"title":"Get storage location of variable","user":{"login":"nmushegian","id":924397,"avatar_url":"https://avatars.githubusercontent.com/u/924397?v=3","gravatar_id":"","url":"https://api.github.com/users/nmushegian","html_url":"https://github.com/nmushegian","followers_url":"https://api.github.com/users/nmushegian/followers","following_url":"https://api.github.com/users/nmushegian/following{/other_user}","gists_url":"https://api.github.com/users/nmushegian/gists{/gist_id}","starred_url":"https://api.github.com/users/nmushegian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmushegian/subscriptions","organizations_url":"https://api.github.com/users/nmushegian/orgs","repos_url":"https://api.github.com/users/nmushegian/repos","events_url":"https://api.github.com/users/nmushegian/events{/privacy}","received_events_url":"https://api.github.com/users/nmushegian/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-23T18:06:17Z","updated_at":"2015-09-23T23:22:44Z","closed_at":"2015-09-23T23:22:44Z","body":"The new \"libraries\" feature will not be very useful if we cannot give the library information about what is where in storage.\r\n\r\n```\r\ncontract Example {\r\n    address A;\r\n    function update(Library L) {\r\n        L.get_latest(&A);\r\n    }\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/ethereum/solidity/issues/comments/142758427","html_url":"https://github.com/ethereum/solidity/issues/92#issuecomment-142758427","issue_url":"https://api.github.com/repos/ethereum/solidity/issues/92","id":142758427,"user":{"login":"chriseth","id":9073706,"avatar_url":"https://avatars.githubusercontent.com/u/9073706?v=3","gravatar_id":"","url":"https://api.github.com/users/chriseth","html_url":"https://github.com/chriseth","followers_url":"https://api.github.com/users/chriseth/followers","following_url":"https://api.github.com/users/chriseth/following{/other_user}","gists_url":"https://api.github.com/users/chriseth/gists{/gist_id}","starred_url":"https://api.github.com/users/chriseth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriseth/subscriptions","organizations_url":"https://api.github.com/users/chriseth/orgs","repos_url":"https://api.github.com/users/chriseth/repos","events_url":"https://api.github.com/users/chriseth/events{/privacy}","received_events_url":"https://api.github.com/users/chriseth/received_events","type":"User","site_admin":false},"created_at":"2015-09-23T23:22:44Z","updated_at":"2015-09-23T23:22:44Z","body":"The difference between value- and object-types is a general concept in many programming languages including JavaScript: If you pass an integer to another function, the original integer cannot be modified in the called function. On the other hand, if you pass an object or a struct, the original struct will be modified if the called function modifies individual members.\r\nThe same semantics apply to Solidity for storage types in external (i.e. only library) calls and to storage and memory types in internal calls.\r\nThe story that will allow internal (e.g. struct) types for library calls is here: https://www.pivotaltracker.com/story/show/101774798"}}