From 361adf9f862c9127adf245c681c8c89ef2edda11 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Thu, 27 Oct 2011 09:14:13 -0700 Subject: [PATCH] Add tests for the 'as' (cast) operator --- src/test/compile-fail/nonscalar-cast.rs | 8 + src/test/compile-fail/unsupported-cast.rs | 8 + src/test/run-pass/supported-cast.rs | 253 ++++++++++++++++++++++ 3 files changed, 269 insertions(+) create mode 100644 src/test/compile-fail/nonscalar-cast.rs create mode 100644 src/test/compile-fail/unsupported-cast.rs create mode 100644 src/test/run-pass/supported-cast.rs diff --git a/src/test/compile-fail/nonscalar-cast.rs b/src/test/compile-fail/nonscalar-cast.rs new file mode 100644 index 00000000000..ab920550f44 --- /dev/null +++ b/src/test/compile-fail/nonscalar-cast.rs @@ -0,0 +1,8 @@ +// error-pattern:non-scalar cast + +use std; +import std::os; + +fn main() { + log { x: 1 } as int; +} diff --git a/src/test/compile-fail/unsupported-cast.rs b/src/test/compile-fail/unsupported-cast.rs new file mode 100644 index 00000000000..00e65f40240 --- /dev/null +++ b/src/test/compile-fail/unsupported-cast.rs @@ -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. +} diff --git a/src/test/run-pass/supported-cast.rs b/src/test/run-pass/supported-cast.rs new file mode 100644 index 00000000000..a100386d1dc --- /dev/null +++ b/src/test/run-pass/supported-cast.rs @@ -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; +}