about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-01-22 21:09:43 -0800
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-01-23 15:48:08 -0800
commit9dc59e15061827122dc0f08d3f66acd17ba329dc (patch)
treed98b61d751f5db6d33c844d3706a9c6a4f399524 /src/test
parente51599932478db1d841912a6e0a10cbc20335e1f (diff)
Export all enum variants by default; new syntax for selectively exporting variants
See issue 1426 for details. Now, the semantics of "export t;" where t is a tag are
to export all of t's variants as well. "export t{};" exports t but not its
variants, while "export t{a, b, c};" exports only variants a, b, c of t.

To do:
- documentation
- there's currently no checking that a, b, c are actually variants of t in the
 above example
- there's also no checking that t is an enum type, in the second two examples above
- change the modules listed in issue 1426 that should have the old export
semantics to use the t{} syntax

I deleted the test export-no-tag-variants since we're doing the opposite now,
and other tests cover the same behavior.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/export-no-tag-variants.rs12
-rw-r--r--src/test/compile-fail/tag-exports-2.rs16
-rw-r--r--src/test/compile-fail/tag-exports-3.rs17
-rw-r--r--src/test/compile-fail/tag-exports.rs16
-rw-r--r--src/test/run-pass/tag-exports.rs24
5 files changed, 36 insertions, 49 deletions
diff --git a/src/test/compile-fail/export-no-tag-variants.rs b/src/test/compile-fail/export-no-tag-variants.rs
deleted file mode 100644
index 7de42bf0a0d..00000000000
--- a/src/test/compile-fail/export-no-tag-variants.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-// error-pattern: unresolved name
-
-// Tag variants are not exported with their tags. This allows for a
-// simple sort of ADT.
-
-mod foo {
-    export t;
-
-    enum t { t1, }
-}
-
-fn main() { let x = foo::t1; }
diff --git a/src/test/compile-fail/tag-exports-2.rs b/src/test/compile-fail/tag-exports-2.rs
index 04bac524d9b..94727838488 100644
--- a/src/test/compile-fail/tag-exports-2.rs
+++ b/src/test/compile-fail/tag-exports-2.rs
@@ -1,18 +1,18 @@
-// xfail-test
+// error-pattern:unresolved name: lovejoy
+import alder::*;
+
 mod alder {
   export burnside;
   export everett::{flanders};
   export irving::{johnson, kearney};
   export marshall::{};
 
-  tag burnside { couch, davis }
-  tag everett { flanders, glisan, hoyt }
-  tag irving { johnson, kearney, lovejoy }
-  tag marshall { northrup, overton }
+  enum burnside { couch, davis }
+  enum everett { flanders, glisan, hoyt }
+  enum irving { johnson, kearney, lovejoy }
+  enum marshall { northrup, overton }
 }
 
-import alder::*;
-
 fn main() {
   let raleigh: irving = lovejoy;
-}
\ No newline at end of file
+}
diff --git a/src/test/compile-fail/tag-exports-3.rs b/src/test/compile-fail/tag-exports-3.rs
index 8b58c1b9ff0..e51a0aca115 100644
--- a/src/test/compile-fail/tag-exports-3.rs
+++ b/src/test/compile-fail/tag-exports-3.rs
@@ -1,19 +1,18 @@
-// xfail-test
+// error-pattern:unresolved name: northrup
+import alder::*;
+
 mod alder {
   export burnside;
   export everett::{flanders};
   export irving::{johnson, kearney};
   export marshall::{};
 
-  tag burnside { couch, davis }
-  tag everett { flanders, glisan, hoyt }
-  tag irving { johnson, kearney, lovejoy }
-  tag marshall { northrup, overton }
+  enum burnside { couch, davis }
+  enum everett { flanders, glisan, hoyt }
+  enum irving { johnson, kearney, lovejoy }
+  enum marshall { northrup, overton }
 }
 
-import alder::*;
-
 fn main() {
   let savier: marshall = northrup;
-
-}
\ No newline at end of file
+}
diff --git a/src/test/compile-fail/tag-exports.rs b/src/test/compile-fail/tag-exports.rs
index 79cb33f0fb2..18965c91842 100644
--- a/src/test/compile-fail/tag-exports.rs
+++ b/src/test/compile-fail/tag-exports.rs
@@ -1,18 +1,18 @@
-// xfail-test
+// error-pattern:unresolved name: glisan
+import alder::*;
+
 mod alder {
   export burnside;
   export everett::{flanders};
   export irving::{johnson, kearney};
   export marshall::{};
 
-  tag burnside { couch, davis }
-  tag everett { flanders, glisan, hoyt }
-  tag irving { johnson, kearney, lovejoy }
-  tag marshall { northrup, overton }
+  enum burnside { couch, davis }
+  enum everett { flanders, glisan, hoyt }
+  enum irving { johnson, kearney, lovejoy }
+  enum marshall { northrup, overton }
 }
 
-import alder::*;
-
 fn main() {
   let quimby: everett = glisan;
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/tag-exports.rs b/src/test/run-pass/tag-exports.rs
index 719e252b732..597bcc66f96 100644
--- a/src/test/run-pass/tag-exports.rs
+++ b/src/test/run-pass/tag-exports.rs
@@ -1,21 +1,21 @@
-// xfail-test
+import alder::*;
+
 mod alder {
   export burnside;
   export everett::{flanders};
   export irving::{johnson, kearney};
   export marshall::{};
 
-  tag burnside { couch, davis }
-  tag everett { flanders, glisan, hoyt }
-  tag irving { johnson, kearney, lovejoy }
-  tag marshall { northrup, overton }
-}
+  enum burnside { couch, davis }
+  enum everett { flanders, glisan, hoyt }
+  enum irving { johnson, kearney, lovejoy }
+  enum marshall { northrup, overton }
 
-import alder::*;
+}
 
 fn main() {
-  let pettygrove: burnside = couch;
-  let quimby: everett = flanders;
-  let raleigh: irving = johnson;
-  let savier: marshall;
-}
\ No newline at end of file
+  let _pettygrove: burnside = couch;
+  let _quimby: everett = flanders;
+  let _raleigh: irving = johnson;
+  let _savier: marshall;
+}