diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2010-08-03 12:20:29 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2010-08-03 12:20:29 -0700 |
| commit | 1fc4e9fcc623df313dcaaf541f08fc7a8415c67f (patch) | |
| tree | 6caa66a2e864bdd48be6fb8e199a0c44e146ef4e /src | |
| parent | 559e1e7e01cd5ecf42a0157b1a2bf0ef53ad312c (diff) | |
| download | rust-1fc4e9fcc623df313dcaaf541f08fc7a8415c67f.tar.gz rust-1fc4e9fcc623df313dcaaf541f08fc7a8415c67f.zip | |
Add tests and fix pexp bug. Closes #141.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile | 6 | ||||
| -rw-r--r-- | src/boot/fe/pexp.ml | 2 | ||||
| -rw-r--r-- | src/test/run-pass/child-outlives-parent.rs | 8 | ||||
| -rw-r--r-- | src/test/run-pass/constrained-type.rs | 14 |
4 files changed, 28 insertions, 2 deletions
diff --git a/src/Makefile b/src/Makefile index a5e97152026..3d31fad3bc2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -381,11 +381,13 @@ TASK_XFAILS := test/run-pass/acyclic-unwind.rs \ test/run-pass/task-comm-9.rs \ test/run-pass/task-comm.rs \ test/run-pass/threads.rs \ - test/run-pass/yield.rs + test/run-pass/yield.rs TEST_XFAILS_X86 := $(TASK_XFAILS) \ test/run-pass/bind-obj-ctor.rs \ + test/run-pass/child-outlives-parent.rs \ test/run-pass/clone-with-exterior.rs \ + test/run-pass/constrained-type.rs \ test/run-pass/obj-as.rs \ test/run-pass/vec-slice.rs \ test/run-pass/fn-lval.rs \ @@ -424,10 +426,12 @@ TEST_XFAILS_LLVM := $(TASK_XFAILS) \ box-in-tup.rs \ box-unbox.rs \ cast.rs \ + child-outlives-parent.rs \ clone-with-exterior.rs \ comm.rs \ command-line-args.rs \ complex.rs \ + constrained-type.rs \ deep.rs \ deref.rs \ destructor-ordering.rs \ diff --git a/src/boot/fe/pexp.ml b/src/boot/fe/pexp.ml index 1532a47a612..9b870639f52 100644 --- a/src/boot/fe/pexp.ml +++ b/src/boot/fe/pexp.ml @@ -121,7 +121,7 @@ and parse_carg_base (ps:pstate) : Ast.carg_base = and parse_carg (ps:pstate) : Ast.carg = match peek ps with - IDENT _ -> + IDENT _ | STAR -> begin let base = Ast.CARG_base (parse_carg_base ps) in let path = diff --git a/src/test/run-pass/child-outlives-parent.rs b/src/test/run-pass/child-outlives-parent.rs new file mode 100644 index 00000000000..d7d7c344302 --- /dev/null +++ b/src/test/run-pass/child-outlives-parent.rs @@ -0,0 +1,8 @@ +// Reported as issue #126, child leaks the string. + +fn child2(str s) { +} + +fn main() { + auto x = spawn child2("hi"); +} \ No newline at end of file diff --git a/src/test/run-pass/constrained-type.rs b/src/test/run-pass/constrained-type.rs new file mode 100644 index 00000000000..88a39ec8c1d --- /dev/null +++ b/src/test/run-pass/constrained-type.rs @@ -0,0 +1,14 @@ +// -*- rust -*- + +// Reported as issue #141, as a parse error. Ought to work in full though. + +type list = tag(cons(int,@list), nil()); +type bubu = rec(int x, int y); + + +fn less_than(int x, int y) -> bool { ret x < y; } + +type ordered_range = rec(int low, int high) : less_than(*.low, *.high); + +fn main() { +} |
