Fixed type resolution error in math tests

This commit is contained in:
Stefan Plantikow 2011-12-14 12:09:01 +01:00 committed by Graydon Hoare
parent 50db7ce906
commit af8e471908
4 changed files with 70 additions and 8 deletions

64
src/libstd/mtypes.rs Normal file
View file

@ -0,0 +1,64 @@
/*
Module: mtypes
Machine type equivalents of rust int, uint, float, and complex.
Types useful for interop with C when writing bindings that exist
for different types (float, f32, f64, ...; cf float.rs for an example)
*/
export m_int, m_uint, m_float;
// PORT Change this when porting to a new architecture
/*
Type: m_int
Machine type equivalent of an int
*/
#[cfg(target_arch="x86")]
type m_int = i32;
#[cfg(target_arch="x86_64")]
type m_int = i64;
// PORT Change this when porting to a new architecture
/*
Type: m_uint
Machine type equivalent of a uint
*/
#[cfg(target_arch="x86")]
type m_uint = u32;
#[cfg(target_arch="x86_64")]
type m_uint = u64;
// PORT *must* match with "import m_float = fXX" in std::math per arch
/*
Type: m_float
Machine type equivalent of a float
*/
type m_float = f64;
// PORT *must* match "import m_complex = ..." in std::complex per arch
/*
FIXME Type m_complex
Machine type representing a complex value that uses floats for
both the real and the imaginary part.
*/
// type m_complex = complex_c64::t;
//
// Local Variables:
// mode: rust
// fill-column: 78;
// indent-tabs-mode: nil
// c-basic-offset: 4
// buffer-file-coding-system: utf-8-unix
// End:
//

View file

@ -1,7 +1,5 @@
// error-pattern: non-trivial cast of tail-call return value
use std;
import ctypes::*;
import core::mtypes::*;
fn foo_float() -> m_float { ret 0.0 as m_float; }
fn bar_float() -> bool { be foo_float() as bool; }

View file

@ -1,6 +1,8 @@
use std;
import core::ctypes::*;
import ctypes::*;
import core::mtypes::m_float;
import core::mtypes::m_int;
import core::mtypes::m_uint;
fn foo_float() -> m_float { ret 0.0 as m_float; }
fn bar_float() -> float { be foo_float() as float; }

View file

@ -1,6 +1,4 @@
use std;
import ctypes::*;
import core::mtypes::m_int;
// This will be more interesting once there is support
// for consts that refer to other consts, i.e. math_f64::consts::pi as m_float