Add tests for the 'as' (cast) operator

This commit is contained in:
Matt Brubeck 2011-10-27 09:14:13 -07:00 committed by Brian Anderson
parent 5a0f18558e
commit 361adf9f86
3 changed files with 269 additions and 0 deletions

View File

@ -0,0 +1,8 @@
// error-pattern:non-scalar cast
use std;
import std::os;
fn main() {
log { x: 1 } as int;
}

View File

@ -0,0 +1,8 @@
// error-pattern:unsupported cast
use std;
import std::os;
fn main() {
log 1.0 as os::libc::FILE; // Can't cast float to native.
}

View File

@ -0,0 +1,253 @@
use std;
import std::os;
fn main() {
let f = 1 as os::libc::FILE;
log f as int;
log f as uint;
log f as i8;
log f as i16;
log f as i32;
log f as i64;
log f as u8;
log f as u16;
log f as u32;
log f as u64;
log 1 as int;
log 1 as uint;
log 1 as float;
log 1 as bool;
log 1 as os::libc::FILE;
log 1 as i8;
log 1 as i16;
log 1 as i32;
log 1 as i64;
log 1 as u8;
log 1 as u16;
log 1 as u32;
log 1 as u64;
log 1 as f32;
log 1 as f64;
log 1u as int;
log 1u as uint;
log 1u as float;
log 1u as bool;
log 1u as os::libc::FILE;
log 1u as i8;
log 1u as i16;
log 1u as i32;
log 1u as i64;
log 1u as u8;
log 1u as u16;
log 1u as u32;
log 1u as u64;
log 1u as f32;
log 1u as f64;
log 1i8 as int;
log 1i8 as uint;
log 1i8 as float;
log 1i8 as bool;
log 1i8 as os::libc::FILE;
log 1i8 as i8;
log 1i8 as i16;
log 1i8 as i32;
log 1i8 as i64;
log 1i8 as u8;
log 1i8 as u16;
log 1i8 as u32;
log 1i8 as u64;
log 1i8 as f32;
log 1i8 as f64;
log 1u8 as int;
log 1u8 as uint;
log 1u8 as float;
log 1u8 as bool;
log 1u8 as os::libc::FILE;
log 1u8 as i8;
log 1u8 as i16;
log 1u8 as i32;
log 1u8 as i64;
log 1u8 as u8;
log 1u8 as u16;
log 1u8 as u32;
log 1u8 as u64;
log 1u8 as f32;
log 1u8 as f64;
log 1i16 as int;
log 1i16 as uint;
log 1i16 as float;
log 1i16 as bool;
log 1i16 as os::libc::FILE;
log 1i16 as i8;
log 1i16 as i16;
log 1i16 as i32;
log 1i16 as i64;
log 1i16 as u8;
log 1i16 as u16;
log 1i16 as u32;
log 1i16 as u64;
log 1i16 as f32;
log 1i16 as f64;
log 1u16 as int;
log 1u16 as uint;
log 1u16 as float;
log 1u16 as bool;
log 1u16 as os::libc::FILE;
log 1u16 as i8;
log 1u16 as i16;
log 1u16 as i32;
log 1u16 as i64;
log 1u16 as u8;
log 1u16 as u16;
log 1u16 as u32;
log 1u16 as u64;
log 1u16 as f32;
log 1u16 as f64;
log 1i32 as int;
log 1i32 as uint;
log 1i32 as float;
log 1i32 as bool;
log 1i32 as os::libc::FILE;
log 1i32 as i8;
log 1i32 as i16;
log 1i32 as i32;
log 1i32 as i64;
log 1i32 as u8;
log 1i32 as u16;
log 1i32 as u32;
log 1i32 as u64;
log 1i32 as f32;
log 1i32 as f64;
log 1u32 as int;
log 1u32 as uint;
log 1u32 as float;
log 1u32 as bool;
log 1u32 as os::libc::FILE;
log 1u32 as i8;
log 1u32 as i16;
log 1u32 as i32;
log 1u32 as i64;
log 1u32 as u8;
log 1u32 as u16;
log 1u32 as u32;
log 1u32 as u64;
log 1u32 as f32;
log 1u32 as f64;
log 1i64 as int;
log 1i64 as uint;
log 1i64 as float;
log 1i64 as bool;
log 1i64 as os::libc::FILE;
log 1i64 as i8;
log 1i64 as i16;
log 1i64 as i32;
log 1i64 as i64;
log 1i64 as u8;
log 1i64 as u16;
log 1i64 as u32;
log 1i64 as u64;
log 1i64 as f32;
log 1i64 as f64;
log 1u64 as int;
log 1u64 as uint;
log 1u64 as float;
log 1u64 as bool;
log 1u64 as os::libc::FILE;
log 1u64 as i8;
log 1u64 as i16;
log 1u64 as i32;
log 1u64 as i64;
log 1u64 as u8;
log 1u64 as u16;
log 1u64 as u32;
log 1u64 as u64;
log 1u64 as f32;
log 1u64 as f64;
log 1u64 as int;
log 1u64 as uint;
log 1u64 as float;
log 1u64 as bool;
log 1u64 as os::libc::FILE;
log 1u64 as i8;
log 1u64 as i16;
log 1u64 as i32;
log 1u64 as i64;
log 1u64 as u8;
log 1u64 as u16;
log 1u64 as u32;
log 1u64 as u64;
log 1u64 as f32;
log 1u64 as f64;
log true as int;
log true as uint;
log true as float;
log true as bool;
log true as os::libc::FILE;
log true as i8;
log true as i16;
log true as i32;
log true as i64;
log true as u8;
log true as u16;
log true as u32;
log true as u64;
log true as f32;
log true as f64;
log 1. as int;
log 1. as uint;
log 1. as float;
log 1. as bool;
log 1. as i8;
log 1. as i16;
log 1. as i32;
log 1. as i64;
log 1. as u8;
log 1. as u16;
log 1. as u32;
log 1. as u64;
log 1. as f32;
log 1. as f64;
log 1f32 as int;
log 1f32 as uint;
log 1f32 as float;
log 1f32 as bool;
log 1f32 as i8;
log 1f32 as i16;
log 1f32 as i32;
log 1f32 as i64;
log 1f32 as u8;
log 1f32 as u16;
log 1f32 as u32;
log 1f32 as u64;
log 1f32 as f32;
log 1f32 as f64;
log 1f64 as int;
log 1f64 as uint;
log 1f64 as float;
log 1f64 as bool;
log 1f64 as i8;
log 1f64 as i16;
log 1f64 as i32;
log 1f64 as i64;
log 1f64 as u8;
log 1f64 as u16;
log 1f64 as u32;
log 1f64 as u64;
log 1f64 as f32;
log 1f64 as f64;
}