{"push_id":2733668584,"size":1,"distinct_size":1,"ref":"refs/heads/access-cleanup","head":"2d5276d84d5f3470c9e838e6208fc388a5130591","before":"b44459bae99b8ac35941e4e7c95837fcda75b8d3","commits":[{"sha":"2d5276d84d5f3470c9e838e6208fc388a5130591","author":{"name":"John McCall","email":"d279088d79e357a153f8842902bcfc9d630ff5da@apple.com"},"message":"Clean up l-value emission in SILGen.\n\nThere were several bits of code which were unnecessarily\nrepeating the core logic of breaking down an access strategy\nand either setting up an LValue or directly emitting it.\nThese places have now been unified to just create and then\nload or othrwise use an LValue.\n\nIntroduce a visitor which handles the common parts of breaking\ndown an access strategy and computing information like the\nLValueTypeData.  In addition to its direct benefits (which are\nsomewhat lost in the boilerplate of capturing local state into\nthe visitor subclass), this eliminates some of the ad-hocness\nof how the various emission paths use AccessStrategy.\n\nFinally, implement the MaterializeToTemporary strategy in its\nfull generality by using the actual read and write sub-strategies\ninstead of always falling back on calling the getter and setter.\nThis part is not NFC because it causes us to perform the read\npart of a read/write to a stored-with-observers property by\ndirectly accessing the storage instead of calling the getter.","distinct":true,"url":"https://api.github.com/repos/rjmccall/swift/commits/2d5276d84d5f3470c9e838e6208fc388a5130591"}]}
{"actor":{"display_login":"rjmccall"}}