diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2013-05-06 16:10:31 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2013-05-06 16:10:31 -0400 |
| commit | 2e4790ca061cd256ab4cb63a269ecf688e25278c (patch) | |
| tree | 0d890fd7c9775c88e6566f4ad3330ae5974fa982 /src/libsyntax | |
| parent | 0ef4e860da1fb755b9fff5d1b30bee3974514ea2 (diff) | |
| parent | a5891bebc132d4c373a5a5ffc93ba1bea2e8beb5 (diff) | |
| download | rust-2e4790ca061cd256ab4cb63a269ecf688e25278c.tar.gz rust-2e4790ca061cd256ab4cb63a269ecf688e25278c.zip | |
Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freeze
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 965d95789c4..0f2ad4cd54a 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -486,6 +486,42 @@ pub fn core_macros() -> ~str { ) ) + macro_rules! assert_approx_eq ( + ($given:expr , $expected:expr) => ( + { + use core::cmp::ApproxEq; + + let given_val = $given; + let expected_val = $expected; + // check both directions of equality.... + if !( + given_val.approx_eq(&expected_val) && + expected_val.approx_eq(&given_val) + ) { + fail!(\"left: %? does not approximately equal right: %?\", + given_val, expected_val); + } + } + ); + ($given:expr , $expected:expr , $epsilon:expr) => ( + { + use core::cmp::ApproxEq; + + let given_val = $given; + let expected_val = $expected; + let epsilon_val = $epsilon; + // check both directions of equality.... + if !( + given_val.approx_eq_eps(&expected_val, &epsilon_val) && + expected_val.approx_eq_eps(&given_val, &epsilon_val) + ) { + fail!(\"left: %? does not approximately equal right: %? with epsilon: %?\", + given_val, expected_val, epsilon_val); + } + } + ) + ) + macro_rules! condition ( { $c:ident: $in:ty -> $out:ty; } => { |
