about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-01-23 15:46:12 -0800
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-01-23 15:48:08 -0800
commit6db688e893f69632624fb8d2e3b747a3b81000b0 (patch)
tree522ab62d11e6fea23652b7342a4dfbb599483b9d /src/test
parent9dc59e15061827122dc0f08d3f66acd17ba329dc (diff)
Check that the names mentioned in tag exports are actually types (or variants)
Check that in export foo{}, foo is an enum type, and that in export
foo{bar, quux}, foo is an enum type and bar and quux are variants belonging
to foo.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/bad-tag-export-2.rs11
-rw-r--r--src/test/compile-fail/bad-tag-export-3.rs13
-rw-r--r--src/test/compile-fail/bad-tag-export-4.rs12
-rw-r--r--src/test/compile-fail/bad-tag-export.rs14
4 files changed, 50 insertions, 0 deletions
diff --git a/src/test/compile-fail/bad-tag-export-2.rs b/src/test/compile-fail/bad-tag-export-2.rs
new file mode 100644
index 00000000000..09018c2167f
--- /dev/null
+++ b/src/test/compile-fail/bad-tag-export-2.rs
@@ -0,0 +1,11 @@
+// error-pattern:b does not refer to an enumeration
+import bad::*;
+
+mod bad {
+  export b::{};
+
+  fn b() { fail; }
+}
+
+fn main() {
+}
\ No newline at end of file
diff --git a/src/test/compile-fail/bad-tag-export-3.rs b/src/test/compile-fail/bad-tag-export-3.rs
new file mode 100644
index 00000000000..e6934688e21
--- /dev/null
+++ b/src/test/compile-fail/bad-tag-export-3.rs
@@ -0,0 +1,13 @@
+// error-pattern:b does not refer to an enumeration
+import bad::*;
+
+mod bad {
+  export b::{f, z};
+
+  fn b() { fail; }
+  fn f() { fail; }
+  fn z() { fail; }
+}
+
+fn main() {
+}
\ No newline at end of file
diff --git a/src/test/compile-fail/bad-tag-export-4.rs b/src/test/compile-fail/bad-tag-export-4.rs
new file mode 100644
index 00000000000..fadf0c353a3
--- /dev/null
+++ b/src/test/compile-fail/bad-tag-export-4.rs
@@ -0,0 +1,12 @@
+// error-pattern:f is not a variant
+import bad::*;
+
+mod bad {
+  export b::{f, z};
+
+  enum b { z, k }
+  fn f() { fail; }
+}
+
+fn main() {
+}
\ No newline at end of file
diff --git a/src/test/compile-fail/bad-tag-export.rs b/src/test/compile-fail/bad-tag-export.rs
new file mode 100644
index 00000000000..fb9d9b8682c
--- /dev/null
+++ b/src/test/compile-fail/bad-tag-export.rs
@@ -0,0 +1,14 @@
+// error-pattern:variant e doesn't belong to enum floop
+import bad::*;
+
+mod bad {
+
+  export floop::{a, e};
+
+  enum floop {a, b, c}
+  enum bloop {d, e, f}
+
+}
+
+fn main() {
+}
\ No newline at end of file