Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(cxx_indexer): support kTakeAlias semantics in simple alias exprs (…
…#5541) * feat(cxx_indexer): support kTakeAlias semantics in simple alias exprs This PR supports marking writes to decls marked with kTakeAlias semantics (that may have indirect targets, as in proto fields). Materially, this means that in: `*m->mutable_foo() = 4;` `mutable_foo` will ref/write the proto field `foo` directly. In contrast, `m->mutable_foo()` on its own (e.g., not as the head of an lexpression) will only be marked as a simple ref of `foo`. Handling decls with marked semantics and exprs with marked semantics appears to be converging somewhat and could do with a little refactoring. Part of the trouble is that different information about the context is available at different times (like when traversing through assignment versus visiting a declref at a leaf). One wonders how much longer we have until we end up with more than one and a half phases (maybe once templates are overhauled?) * fix: switch to structs with named members
- Loading branch information
Showing
5 changed files
with
132 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters