// run-pass

#![allow(unconditional_recursion)]
#![allow(non_camel_case_types)]
#![allow(dead_code)]
#![allow(unused_mut)]



type t = isize;

fn nothing() { }

fn putstr(_s: String) { }

fn putint(_i: isize) {
    let mut i: isize = 33;
    while i < 36 { putstr("hi".to_string()); i = i + 1; }
}

fn zerg(i: isize) -> isize { return i; }

fn foo(x: isize) -> isize {
    let mut y: t = x + 2;
    putstr("hello".to_string());
    while y < 10 { putint(y); if y * 3 == 4 { y = y + 2; nothing(); } }
    let mut z: t;
    z = 0x55;
    foo(z);
    return 0;
}

pub fn main() {
    let x: isize = 2 + 2;
    println!("{}", x);
    println!("hello, world");
    println!("{}", 10);
}
