From 3dcb79dac91f0a53fecbf1c5340db6c54c5a2e71 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 21 Mar 2011 21:30:32 -0400 Subject: Add a regression test for channels of nil, which happens to work in rustc, but not in rustboot --- src/Makefile | 1 + src/test/run-pass/task-comm-chan-nil.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/test/run-pass/task-comm-chan-nil.rs (limited to 'src') diff --git a/src/Makefile b/src/Makefile index 48254b02..229b4e49 100644 --- a/src/Makefile +++ b/src/Makefile @@ -434,6 +434,7 @@ TASK_XFAILS := test/run-pass/task-comm-8.rs \ test/run-pass/task-comm-12.rs \ test/run-pass/task-comm-2.rs \ test/run-pass/task-comm-9.rs \ + test/run-pass/task-comm-chan-nil.rs \ test/run-pass/task-life-0.rs \ test/run-pass/alt-type-simple.rs \ test/run-pass/many.rs diff --git a/src/test/run-pass/task-comm-chan-nil.rs b/src/test/run-pass/task-comm-chan-nil.rs new file mode 100644 index 00000000..c8f5a90f --- /dev/null +++ b/src/test/run-pass/task-comm-chan-nil.rs @@ -0,0 +1,17 @@ +// -*- rust -*- + +// rustboot can't transmit nils across channels because they don't have +// any size, but rustc currently can because they do have size. Whether +// or not this is desirable I don't know, but here's a regression test. + +impure fn main() { + let port[()] po = port(); + let chan[()] ch = chan(po); + + ch <| (); + + let () n; + n <- po; + + check (n == ()); +} -- cgit v1.2.3