From 44e2dc2789a8b3a19024ec67e25f8bd4d28afdce Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Fri, 23 Jul 2010 15:29:17 -0700 Subject: Improve mutability checking. Closes #118. --- src/test/compile-fail/writing-through-read-alias.rs | 2 +- src/test/compile-fail/writing-to-immutable-obj.rs | 8 ++++++++ src/test/compile-fail/writing-to-immutable-rec.rs | 5 +++++ src/test/compile-fail/writing-to-immutable-tup.rs | 5 +++++ src/test/compile-fail/writing-to-immutable-vec.rs | 5 +++++ 5 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/test/compile-fail/writing-to-immutable-obj.rs create mode 100644 src/test/compile-fail/writing-to-immutable-rec.rs create mode 100644 src/test/compile-fail/writing-to-immutable-tup.rs create mode 100644 src/test/compile-fail/writing-to-immutable-vec.rs (limited to 'src/test/compile-fail') diff --git a/src/test/compile-fail/writing-through-read-alias.rs b/src/test/compile-fail/writing-through-read-alias.rs index b3d21521..2a8ec11e 100644 --- a/src/test/compile-fail/writing-through-read-alias.rs +++ b/src/test/compile-fail/writing-through-read-alias.rs @@ -1,6 +1,6 @@ // -*- rust -*- -// error-pattern: writing to non-mutable slot +// error-pattern: writing to immutable type type point = rec(int x, int y, int z); diff --git a/src/test/compile-fail/writing-to-immutable-obj.rs b/src/test/compile-fail/writing-to-immutable-obj.rs new file mode 100644 index 00000000..ffa2cebe --- /dev/null +++ b/src/test/compile-fail/writing-to-immutable-obj.rs @@ -0,0 +1,8 @@ +// error-pattern: writing to immutable type +obj objy(int x) { + fn foo() -> () { + x = 5; + } +} +fn main() { +} diff --git a/src/test/compile-fail/writing-to-immutable-rec.rs b/src/test/compile-fail/writing-to-immutable-rec.rs new file mode 100644 index 00000000..42206fe4 --- /dev/null +++ b/src/test/compile-fail/writing-to-immutable-rec.rs @@ -0,0 +1,5 @@ +// error-pattern: writing to immutable type +fn main() { + let rec(int x) r = rec(x=1); + r.x = 6; +} diff --git a/src/test/compile-fail/writing-to-immutable-tup.rs b/src/test/compile-fail/writing-to-immutable-tup.rs new file mode 100644 index 00000000..bd974dcc --- /dev/null +++ b/src/test/compile-fail/writing-to-immutable-tup.rs @@ -0,0 +1,5 @@ +// error-pattern: writing to immutable type +fn main() { + let tup(int) t = tup(1); + t._0 = 5; +} diff --git a/src/test/compile-fail/writing-to-immutable-vec.rs b/src/test/compile-fail/writing-to-immutable-vec.rs new file mode 100644 index 00000000..341037c3 --- /dev/null +++ b/src/test/compile-fail/writing-to-immutable-vec.rs @@ -0,0 +1,5 @@ +// error-pattern: writing to immutable type +fn main() { + let vec[int] v = vec(1, 2, 3); + v.(1) = 4; +} \ No newline at end of file -- cgit v1.2.3