#![allow(dead_code)] #![feature(never_type)] #[derive(Debug, Default)] struct Demo {} #[derive(Debug)] struct DemoNoDef {} fn apple(_: u32) {} fn banana() { let chaenomeles; apple(chaenomeles); //~^ ERROR used binding `chaenomeles` isn't initialized [E0381] } fn main() { let my_bool: bool = bool::default(); println!("my_bool: {}", my_bool); let my_float: f32; println!("my_float: {}", my_float); //~^ ERROR used binding `my_float` isn't initialized let demo: Demo; println!("demo: {:?}", demo); //~^ ERROR used binding `demo` isn't initialized let demo_no: DemoNoDef; println!("demo_no: {:?}", demo_no); //~^ ERROR used binding `demo_no` isn't initialized let arr: [i32; 5]; println!("arr: {:?}", arr); //~^ ERROR used binding `arr` isn't initialized let foo: Vec<&str>; println!("foo: {:?}", foo); //~^ ERROR used binding `foo` isn't initialized let my_string: String; println!("my_string: {}", my_string); //~^ ERROR used binding `my_string` isn't initialized let my_int: &i32; println!("my_int: {}", *my_int); //~^ ERROR used binding `my_int` isn't initialized let hello: &str; println!("hello: {}", hello); //~^ ERROR used binding `hello` isn't initialized let never: !; println!("never: {}", never); //~^ ERROR used binding `never` isn't initialized [E0381] banana(); }