MIR printing: print the path of uneval'd const#122290
Merged
bors merged 1 commit intorust-lang:masterfrom Mar 11, 2024
Merged
Conversation
Collaborator
|
r? @davidtwco rustbot has assigned @davidtwco. Use r? to explicitly pick a reviewer |
RalfJung
commented
Mar 10, 2024
| "eval_body_using_ecx: pushing stack frame for global: {}{}", | ||
| with_no_trimmed_paths!(ecx.tcx.def_path_str(cid.instance.def_id())), | ||
| cid.promoted.map_or_else(String::new, |p| format!("::promoted[{p:?}]")) | ||
| cid.promoted.map_or_else(String::new, |p| format!("::{p:?}")) |
Member
Author
There was a problem hiding this comment.
p has type mir::Promoted which already adds the promoted[...] in its debug format.
This comment has been minimized.
This comment has been minimized.
… a consistent way
RalfJung
commented
Mar 10, 2024
| _4 = ShlUnchecked(_1, _3); | ||
| StorageDead(_3); | ||
| _5 = Ge(_2, const _); | ||
| _5 = Ge(_2, const core::num::<impl u32>::BITS); |
Member
Author
There was a problem hiding this comment.
Strangely this one did not get updated by --bless.
EDIT: filed an issue: #122292
compiler-errors
approved these changes
Mar 10, 2024
Contributor
compiler-errors
left a comment
There was a problem hiding this comment.
thanks, this is a great improvement to the rendered MIR
Contributor
|
r? compiler-errors @bors r+ rollup |
Collaborator
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this pull request
Mar 10, 2024
…errors
MIR printing: print the path of uneval'd const
Currently it just prints `const _` which makes it impossible to say which constant is being referred to.
Also refer to promoteds in a consistent way; previously MIR printing would do
```
promoted[0] in C1: &Option<Cell<i32>> = {
// ...
}
```
Now that should be
```
const C1::promoted[0]: &Option<Cell<i32>> = {
// ...
}
```
We don't seem to have a test for that so I tried it by hand, it seems to work:
```
const main::promoted[12]: &[&str; 3] = {
let mut _0: &[&str; 3];
let mut _1: [&str; 3];
let mut _2: &str;
let mut _3: &str;
let mut _4: &str;
let mut _5: &str;
bb0: {
_3 = const "b";
_2 = &(*_3);
_5 = const "c";
_4 = &(*_5);
_1 = [const "a", move _2, move _4];
_0 = &_1;
return;
}
}
```
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Mar 10, 2024
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#121754 ([bootstrap] Move the `split-debuginfo` setting to the per-target section) - rust-lang#122205 (ensure that sysroot is properly set for cross-targets) - rust-lang#122275 (disable OOM test in Miri) - rust-lang#122276 (io::Read trait: make it more clear when we are adressing implementations vs callers) - rust-lang#122286 (use Instance::expect_resolve() instead of unwraping Instance::resolve()) - rust-lang#122290 (MIR printing: print the path of uneval'd const) - rust-lang#122293 (diagnostics: Do not suggest using `#[unix_sigpipe]` without a value) - rust-lang#122297 (bootstrap: document what the triples in 'Build' mean) r? `@ghost` `@rustbot` modify labels: rollup
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Mar 10, 2024
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#122275 (disable OOM test in Miri) - rust-lang#122276 (io::Read trait: make it more clear when we are adressing implementations vs callers) - rust-lang#122277 (BorrowedCursor docs clarification) - rust-lang#122286 (use Instance::expect_resolve() instead of unwraping Instance::resolve()) - rust-lang#122290 (MIR printing: print the path of uneval'd const) - rust-lang#122293 (diagnostics: Do not suggest using `#[unix_sigpipe]` without a value) - rust-lang#122297 (bootstrap: document what the triples in 'Build' mean) - rust-lang#122302 (docs: Correct ptr/ref verbiage in SliceIndex docs.) - rust-lang#122304 (fix metadata for dyn-star in new solver) r? `@ghost` `@rustbot` modify labels: rollup
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Mar 11, 2024
Rollup merge of rust-lang#122290 - RalfJung:mir-printing, r=compiler-errors MIR printing: print the path of uneval'd const Currently it just prints `const _` which makes it impossible to say which constant is being referred to. Also refer to promoteds in a consistent way; previously MIR printing would do ``` promoted[0] in C1: &Option<Cell<i32>> = { // ... } ``` Now that should be ``` const C1::promoted[0]: &Option<Cell<i32>> = { // ... } ``` We don't seem to have a test for that so I tried it by hand, it seems to work: ``` const main::promoted[12]: &[&str; 3] = { let mut _0: &[&str; 3]; let mut _1: [&str; 3]; let mut _2: &str; let mut _3: &str; let mut _4: &str; let mut _5: &str; bb0: { _3 = const "b"; _2 = &(*_3); _5 = const "c"; _4 = &(*_5); _1 = [const "a", move _2, move _4]; _0 = &_1; return; } } ```
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently it just prints
const _which makes it impossible to say which constant is being referred to.Also refer to promoteds in a consistent way; previously MIR printing would do
Now that should be
We don't seem to have a test for that so I tried it by hand, it seems to work: