swift
swift copied to clipboard
[Sema/SilGen] Refactor key path component kinds
These changes refactor and generalize key path component kinds to make them extendable to other potential key path component kinds, eg. method keypaths.
UnresolvedProperty is renamed to UnresolvedMember to handle all members, including properties and subscripts. UnresolvedSubscript is renamed to UnresolvedApply and handles unresolved application of arguments, including subscript index arguments.
An Apply component kind has been added to deal with the resolved application of arguments and the 'Subscript' component kind has been generalized to Member.