Modify Accessors

Note that throwing accessors are one important reason why I feel that design approaches that center around disallowing normal code after yield are non-starters. All of those ideas require the cleanup code to not throw, but presumably we do want to allow accesses that are ending normally (i.e. there hasn't already been an error thrown in the caller that aborted the access) to do things that might throw, like call a throwing setter.

For what it's worth, there are deeper semantic questions that we'll eventually need to settle about whether setters should be guaranteed to be run if an access is aborted.

5 Likes