-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-prettyArea: Pretty printing (including `-Z unpretty`)Area: Pretty printing (including `-Z unpretty`)
Description
If I run rustc --pretty normal
with this input (tag-disr-val-shape.rs
):
// xfail-pretty Issue #1510
tag color {
red = 0xff0000;
green = 0x00ff00;
blue = 0x0000ff;
black = 0x000000;
white = 0xFFFFFF;
}
fn main() {
assert uint::to_str(red as uint, 10u) == #fmt["%?", red];
assert uint::to_str(green as uint, 10u) == #fmt["%?", green];
assert uint::to_str(white as uint, 10u) == #fmt["%?", white];
}
then the 10u
s which appear in the asserts become 10
. Looking at the code, it's fairly clear that ast_util::uint_ty_to_str()
is wrong:
fn uint_ty_to_str(t: uint_ty) -> str {
alt t {
ty_u. { "" } ty_u8. { "u8" } ty_u16. { "u16" }
ty_u32. { "u32" } ty_u64. { "u64" }
}
}
I was just going to fix this function... but then I found that almost every other example of printing 10u
which I have tried works! I cannot for the life of me figure out why. I believe I've even seen the output vary from run to run. So I'm wondering if there is a deeper bug: I've been digging into it but haven't found it yet. I'm getting a bit bored of this bug though and want to get hacking on other things, so I'm filing an issue. Anyhow, maybe someone else has some idea what's going on?
Metadata
Metadata
Assignees
Labels
A-prettyArea: Pretty printing (including `-Z unpretty`)Area: Pretty printing (including `-Z unpretty`)