Commits

Slava Pestov committed 9c3ccc98553
Sema: Plumb through resiliently-accessed global variables My recent changes added "resiliently-sized" global variables, where a global in one module is defined to be of a type from another module, and the type's size is not known at compile time. This patch adds the other half of the equation: when accessing a global variable defined by another module, we want to use accessors since we want to resiliently change global variables from stored to computed and vice versa. The main complication here is that the synthesized accessors are not part of any IterableDeclContext, and require some special-casing in SILGen and Serialization. There might be simplifications possible here. For testing and because of how the resilience code works right now, I added the @_fixed_layout attribute to global variables. In the future, we probably will not give users a way to promise that a stored global variable will always remain stored; or perhaps we will hang this off of a different attribute, once we finalize the precise set of attributes exposed for resilience. There's probably some other stuff with lazy and observers I need to think about here; leaving that for later.