rust/compiler
bors 698fcc8219 Auto merge of #117517 - klinvill:smir-projections, r=ouz-a
Add richer structure for Stable MIR Projections

Resolves https://github.com/rust-lang/project-stable-mir/issues/49.

Projections in Stable MIR are currently just strings. This PR replaces that representation with a richer structure, namely projections become vectors of `ProjectionElem`s, just as in MIR. The `ProjectionElem` enum is heavily based off of the MIR `ProjectionElem`.

This PR is a draft since there are several outstanding issues to resolve, including:

- How should `UserTypeProjection`s be represented in Stable MIR? In MIR, the projections are just a vector of `ProjectionElem<(),()>`, meaning `ProjectionElem`s that don't have Local or Type arguments (for `Index`, `Field`, etc. objects). Should `UserTypeProjection`s be represented this way in Stable MIR as well? Or is there a more user-friendly representation that wouldn't drag along all the `ProjectionElem` variants that presumably can't appear?
- What is the expected behavior of a `Place`'s `ty` function? Should it resolve down the chain of projections so that something like `*_1.f` would return the type referenced by field `f`?
- Tests should be added for `UserTypeProjection`
2023-11-15 06:05:54 +00:00
..
rustc Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_abi Make the randomize feature of rustc_abi additive 2023-11-05 21:51:47 +03:30
rustc_arena Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_ast Fix comment 2023-11-13 13:15:55 +08:00
rustc_ast_lowering Rollup merge of #117858 - compiler-errors:span, r=lcnr 2023-11-14 00:54:16 +09:00
rustc_ast_passes Auto merge of #117817 - fmease:deny-more-tilde-const, r=fee1-dead 2023-11-12 04:40:44 +00:00
rustc_ast_pretty Clarify space_between. 2023-11-08 14:39:59 +11:00
rustc_attr Auto merge of #117377 - dtolnay:deprecatedsince, r=cjgillot 2023-10-31 10:42:24 +00:00
rustc_baked_icu_data Update ICU4X 2023-11-06 13:42:20 +00:00
rustc_borrowck continue renaming 2023-11-13 14:13:54 +00:00
rustc_builtin_macros Emit #[inline] on derive(Debug) 2023-11-09 10:40:55 -05:00
rustc_codegen_cranelift Merge commit 'c84d1871dc4456539b7b578830268ab3539915d0' into sync_cg_clif-2023-11-10 2023-11-10 11:30:51 +00:00
rustc_codegen_gcc target_feature: make it more clear what that 'Option' means 2023-11-12 12:46:05 +01:00
rustc_codegen_llvm Rollup merge of #117911 - catandcoder:master, r=lqd 2023-11-14 21:50:39 +01:00
rustc_codegen_ssa Auto merge of #117359 - tmiasko:call-def, r=cjgillot 2023-11-15 01:31:46 +00:00
rustc_const_eval Fix some typos 2023-11-14 23:06:50 +08:00
rustc_data_structures Fix some typos 2023-11-14 23:06:50 +08:00
rustc_driver Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_driver_impl Remove -Zperf-stats. 2023-11-13 09:45:20 +11:00
rustc_error_codes Auto merge of #117537 - GKFX:offset-of-enum-feature, r=cjgillot 2023-11-05 13:44:59 +00:00
rustc_error_messages Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_errors Fix some typos 2023-11-14 23:06:50 +08:00
rustc_expand Replace two create_default_session_if_not_set_then uses. 2023-11-02 19:35:04 +11:00
rustc_feature Auto merge of #117537 - GKFX:offset-of-enum-feature, r=cjgillot 2023-11-05 13:44:59 +00:00
rustc_fluent_macro Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_fs_util Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_graphviz Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_hir Add suggestion to THIR unsafe_op_in_unsafe_fn lint 2023-11-06 16:23:09 +00:00
rustc_hir_analysis Auto merge of #117881 - TaKO8Ki:rollup-n7jtmgj, r=TaKO8Ki 2023-11-13 17:29:00 +00:00
rustc_hir_pretty Fix remaining uses of CaptureBy::Value 2023-11-04 19:48:44 +01:00
rustc_hir_typeck Rollup merge of #117893 - sjwang05:issue-52544-take-1, r=wesleywiser 2023-11-14 21:50:39 +01:00
rustc_incremental Remove unused LoadResult::DecodeIncrCache variant 2023-11-04 20:16:03 +00:00
rustc_index Remove unnecessary annotation. 2023-11-13 17:09:26 +11:00
rustc_infer Auto merge of #117773 - nnethercote:rm-Zperf-stats, r=wesleywiser 2023-11-14 02:24:05 +00:00
rustc_interface Auto merge of #117773 - nnethercote:rm-Zperf-stats, r=wesleywiser 2023-11-14 02:24:05 +00:00
rustc_lexer Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_lint Fix some typos 2023-11-14 23:06:50 +08:00
rustc_lint_defs Auto merge of #116930 - RalfJung:raw-ptr-match, r=davidtwco 2023-11-08 20:42:32 +00:00
rustc_llvm Rollup merge of #114224 - inferiorhumanorgans:solaris-llvm-wrapper, r=cuviper 2023-11-13 21:28:54 +01:00
rustc_log Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_macros Factor out some duplicated code. 2023-11-10 10:54:26 +11:00
rustc_metadata Rollup merge of #115485 - DaniPopes:rustdoc-macro-consts, r=jackh726,fmease 2023-11-07 19:29:56 +01:00
rustc_middle Auto merge of #117359 - tmiasko:call-def, r=cjgillot 2023-11-15 01:31:46 +00:00
rustc_mir_build Rollup merge of #117686 - compiler-errors:gen-body, r=wesleywiser 2023-11-14 21:50:38 +01:00
rustc_mir_dataflow rename BorrowKind::Shallow to Fake 2023-11-08 22:55:28 +01:00
rustc_mir_transform Fix def-use check for call terminators 2023-11-14 17:07:34 +01:00
rustc_monomorphize Minimize pub usage in source_map.rs. 2023-11-02 19:35:00 +11:00
rustc_parse Fix some typos 2023-11-14 23:06:50 +08:00
rustc_parse_format Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_passes Fix some typos 2023-11-14 23:06:50 +08:00
rustc_privacy Fix some typos 2023-11-14 23:06:50 +08:00
rustc_query_impl Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_query_system Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_resolve rustc: minor changes suggested by clippy perf lints. 2023-11-08 08:57:57 +11:00
rustc_serialize Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_session Auto merge of #117731 - nnethercote:rustc_macros, r=Nilstrieb 2023-11-14 10:55:42 +00:00
rustc_smir Auto merge of #117517 - klinvill:smir-projections, r=ouz-a 2023-11-15 06:05:54 +00:00
rustc_span Auto merge of #117330 - tmiasko:custom-mir-cleanup-blocks, r=cjgillot 2023-11-14 08:53:25 +00:00
rustc_symbol_mangling Auto merge of #117773 - nnethercote:rm-Zperf-stats, r=wesleywiser 2023-11-14 02:24:05 +00:00
rustc_target Auto merge of #115694 - clarfonthey:std-hash-private, r=dtolnay 2023-11-11 21:12:20 +00:00
rustc_trait_selection Auto merge of #117887 - matthiaskrgr:rollup-rgur03f, r=matthiaskrgr 2023-11-13 21:47:18 +00:00
rustc_traits Remove -Zperf-stats. 2023-11-13 09:45:20 +11:00
rustc_transmute Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_ty_utils Auto merge of #117881 - TaKO8Ki:rollup-n7jtmgj, r=TaKO8Ki 2023-11-13 17:29:00 +00:00
rustc_type_ir update type flags 2023-11-13 14:13:54 +00:00
stable_mir Auto merge of #117517 - klinvill:smir-projections, r=ouz-a 2023-11-15 06:05:54 +00:00