-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Preserve 'let'-ness of stored properties in key paths. #18768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This will let future compilers that support new key path features backward-deploy logic for interpreting new kinds of key path patterns.
If we know a key path component can be accessed as a stored property, then we should also know whether it's a `let` or not, so it should be safe to encode this in the key path pattern. Stage this change in by changing the number of bits used to store in-line offsets, fixing up the parts of the key path implementation that assumed that it took up the entire payload bitfield.
@swift-ci Please test |
Build failed |
Build failed |
@swift-ci Please test |
Build failed |
Build failed |
@swift-ci Please test |
Build failed |
Build failed |
lldb test failure looks unrelated. @fredriss does this ring a bell?
|
@swift-ci Please smoke test Linux |
@jckarter no, I haven't seen this one. |
(but if your change only impacts keypath, then I agree it's unlikely to be related to your changes) |
And the tests just passed on macOS... |
Fixes SR-6502 | rdar://problem/35773760.