Commit Graph

4 Commits

Author SHA1 Message Date
Joe Groff
2497e5bf97 SILGen: Protocol requirements don't need descriptors either. 2018-07-27 13:15:57 -07:00
Joe Groff
81a7b19c9c SILGen: Fix visibility handling of external private setters in key paths.
Don't try to directly reference them if they can't be linked to from here.
2018-07-25 11:09:04 -07:00
Joe Groff
a795b4fc0c SIL: Move responsibility for external keypath equals/hash to the caller.
A public subscript might have generic indexes that aren't unconditionally Hashable, or might use indexes that are retroactively made Hashable, so the property descriptor on the implementer's side can't always resiliently provide this information to the final instantiated KeyPath.
2018-03-14 14:05:49 -07:00
Joe Groff
b00ea61945 SILGen: Lower keypath references to other modules' properties and subscripts as external keypath components.
This way we'll link against the key path component the other module provides instead of making fragile assumptions about its current implementation. Since external keypath lowering isn't fully implemented elsewhere in the compiler, this is enabled behind a staging flag.

external keypath staging
2018-02-23 12:58:19 -08:00