about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorKevin Atkinson <kevina@cs.utah.edu>2012-01-10 14:55:54 -0700
committerGraydon Hoare <graydon@mozilla.com>2012-01-10 15:59:57 -0800
commit1dc3debdafbf29c6ac4ff3cf336da62e13e1871e (patch)
tree76319cdf2c1b7b41ce098a1605f08f8a340e8776 /src/test
parent08abf8d37fa549ebc67f80d80530f4aa43d716e4 (diff)
downloadrust-1dc3debdafbf29c6ac4ff3cf336da62e13e1871e.tar.gz
rust-1dc3debdafbf29c6ac4ff3cf336da62e13e1871e.zip
Add support for casting enum-like tags to scalar values.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/tag-variant-cast-non-nullary.rs12
-rw-r--r--src/test/run-pass/tag-variant-disr-val.rs4
2 files changed, 15 insertions, 1 deletions
diff --git a/src/test/compile-fail/tag-variant-cast-non-nullary.rs b/src/test/compile-fail/tag-variant-cast-non-nullary.rs
new file mode 100644
index 00000000000..ecc518e75a1
--- /dev/null
+++ b/src/test/compile-fail/tag-variant-cast-non-nullary.rs
@@ -0,0 +1,12 @@
+//error-pattern: non-scalar cast
+// black and white have the same discriminator value ...
+
+tag non_nullary {
+    nullary;
+    other(int);
+}
+
+fn main() {
+    let v = nullary;
+    let val = v as int;
+}
diff --git a/src/test/run-pass/tag-variant-disr-val.rs b/src/test/run-pass/tag-variant-disr-val.rs
index a09de4794c4..1efe40d547d 100644
--- a/src/test/run-pass/tag-variant-disr-val.rs
+++ b/src/test/run-pass/tag-variant-disr-val.rs
@@ -17,7 +17,9 @@ fn main() {
 }
 
 fn test_color(color: color, val: int, name: str) unsafe {
-    assert unsafe::reinterpret_cast(color) == val;
+    //assert unsafe::reinterpret_cast(color) == val;
+    assert color as int == val;
+    assert color as float == val as float;
     assert get_color_alt(color) == name;
     assert get_color_if(color) == name;
 }