Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[move][move-2024][ide] Split up match in the compiler (MystenLabs#18179)
## Description This make the following changes: 1. It moves some custom query information that was being maintained as part of the typing context (and before that, as part of the HLIR context) onto `ProgramInfo` to allow matching operations to query information about the structure of datatypes for any program information. 2. It splits the main `PatternMatrix` definitions (data + code) into `shared/matching.rs`, along with a `MatchContext` trait that the matrix specialization operations are now generic over. 3. It removes the actual match compilation code from typing, partially reverting MystenLabs#17559 -- counterexample generation and IDE suggestion analysis happens in typing as a visitor over function bodies, but matches remain intact through all of typing now. 4. It reinstates the previous code for compiling `match` as part of HLIR lowering. Along the way, this code also cleaned up a bit of how struct and enum information was being indexed in HLIR lowering, opting to reuse the now-stored TypedProgramInfo (🎉 MystenLabs#17787) as opposed to recomputing this information from scratch. ## Test plan All tests should still work as expected with no other changes. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK:
- Loading branch information