Commits

Slava Pestov committed 10c8ce824fe
SILGen: Correctly emit accessors synthesized to witness protocol requirements We weren't adding them as external decls unless they were for storage on an imported type, which meant SILGen wasn't emitting them if the conforming type was from a different Swift source file, or in whole-module mode, a different module. This led to linker errors. Instead, always add accessors to the external decl list, but skip them in SILGen if they are contained in the DeclContext we are currently emitting (which is a source file or module). Note that they are still emitted with the wrong linkage, from a resilience perspective. Clients must only ever see public exports for getters, setters and materializeForSet emitted because they are required by resilience or the access pattern; 'accidental' accessors synthesized for protocol conformance should not be public.