-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlA-prettyArea: Pretty printing (including `-Z unpretty`)Area: Pretty printing (including `-Z unpretty`)C-bugCategory: This is a bug.Category: This is a bug.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
fn f(slice: &[u8]) -> u8 {
(*slice)[0]
}
fn f(_1: &[u8]) -> u8 {
debug slice => _1; // in scope 0 at src/main.rs:1:6: 1:11
let mut _0: u8; // return place in scope 0 at src/main.rs:1:23: 1:25
let _2: usize; // in scope 0 at src/main.rs:2:14: 2:15
let mut _3: usize; // in scope 0 at src/main.rs:2:5: 2:16
let mut _4: bool; // in scope 0 at src/main.rs:2:5: 2:16
bb0: {
StorageLive(_2); // bb0[0]: scope 0 at src/main.rs:2:14: 2:15
_2 = const 0usize; // bb0[1]: scope 0 at src/main.rs:2:14: 2:15
// ty::Const
// + ty: usize
// + val: Value(Scalar(0x0000000000000000))
// mir::Constant
// + span: src/main.rs:2:14: 2:15
// + literal: Const { ty: usize, val: Value(Scalar(0x0000000000000000)) }
_3 = Len((*_1)); // bb0[2]: scope 0 at src/main.rs:2:5: 2:16
_4 = Lt(_2, _3); // bb0[3]: scope 0 at src/main.rs:2:5: 2:16
assert(move _4, "index out of bounds: the len is move _3 but the index is _2") -> bb1; // bb0[4]: scope 0 at src/main.rs:2:5: 2:16
}
bb1: {
_0 = (*_1)[_2]; // bb1[0]: scope 0 at src/main.rs:2:5: 2:16
StorageDead(_2); // bb1[1]: scope 0 at src/main.rs:3:1: 3:2
return; // bb1[2]: scope 0 at src/main.rs:3:2: 3:2
}
}
Note how it says "index out of bounds: the len is move _3 but the index is _2"
. The formatting arguments are inlined into the message.
It should either mirror the format!
string syntax, or at least use braces around the arguments so that they don't look like they're part of the string itself.
This issue has been assigned to @robojumper via this comment.
Metadata
Metadata
Assignees
Labels
A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlA-prettyArea: Pretty printing (including `-Z unpretty`)Area: Pretty printing (including `-Z unpretty`)C-bugCategory: This is a bug.Category: This is a bug.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.