Add pretty printing tests for if/else.

The AST pretty printing is a bit wonky. The HIR pretty printing is
extremely wonky.
This commit is contained in:
Nicholas Nethercote
2025-04-25 12:25:04 +10:00
parent dc8fe1f81c
commit 3d488f8e0c
4 changed files with 224 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
#[prelude_import]
use ::std::prelude::rust_2015::*;
#[macro_use]
extern crate std;
//@ pretty-compare-only
//@ pretty-mode:hir
//@ pp-exact:hir-if-else.pp
fn f(x: u32,
y:
u32) {
let mut a = 0;
if x > y { a = 1; } else { a = 2; }
if x < 1
{
a = 1;
} else if x < 2
{
a = 2;
} else if x < 3
{
a = 3;
} else if x < 4 { a = 4; } else { a = 5; }
if x < y
{
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
} else { a += 1; a += 1; a += 1; a += 1; a += 1; a += 1; }
if x < 1
{
if x < 2
{
if x < 3
{
a += 1;
} else if x < 4
{ a += 1; if x < 5 { a += 1; } }
} else if x < 6 { a += 1; } }
}
fn main() { f(3, 4); }
+59
View File
@@ -0,0 +1,59 @@
//@ pretty-compare-only
//@ pretty-mode:hir
//@ pp-exact:hir-if-else.pp
fn f(x: u32, y: u32) {
let mut a = 0;
if x > y {
a = 1;
} else {
a = 2;
}
if x < 1 {
a = 1;
} else if x < 2 {
a = 2;
} else if x < 3 {
a = 3;
} else if x < 4 {
a = 4;
} else {
a = 5;
}
if x < y {
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
} else {
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
}
if x < 1 {
if x < 2 {
if x < 3 {
a += 1;
} else if x < 4 {
a += 1;
if x < 5 {
a += 1;
}
}
} else if x < 6 {
a += 1;
}
}
}
fn main() {
f(3, 4);
}
+52
View File
@@ -0,0 +1,52 @@
#![feature(prelude_import)]
#![no_std]
#[prelude_import]
use ::std::prelude::rust_2015::*;
#[macro_use]
extern crate std;
//@ pretty-compare-only
//@ pretty-mode:expanded
//@ pp-exact:if-else.pp
fn f(x: u32, y: u32) {
let mut a = 0;
if x > y { a = 1; } else { a = 2; }
if x < 1 {
a = 1;
} else if x < 2 {
a = 2;
} else if x < 3 { a = 3; } else if x < 4 { a = 4; } else { a = 5; }
if x < y {
a += 1;
a += 1;
a += 1;
} else {
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
}
if x < 1 {
if x < 2 {
if x < 3 {
a += 1;
} else if x < 4 { a += 1; if x < 5 { a += 1; } }
} else if x < 6 { a += 1; }
}
}
fn main() { f(3, 4); }
+65
View File
@@ -0,0 +1,65 @@
//@ pretty-compare-only
//@ pretty-mode:expanded
//@ pp-exact:if-else.pp
fn f(x: u32, y: u32) {
let mut a = 0;
if x > y {
a = 1;
} else {
a = 2;
}
if x < 1 {
a = 1;
} else if x < 2 {
a = 2;
} else if x < 3 {
a = 3;
} else if x < 4 {
a = 4;
} else {
a = 5;
}
if x < y {
a += 1;
a += 1;
a += 1;
} else {
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
}
if x < 1 {
if x < 2 {
if x < 3 {
a += 1;
} else if x < 4 {
a += 1;
if x < 5 {
a += 1;
}
}
} else if x < 6 {
a += 1;
}
}
}
fn main() {
f(3, 4);
}