diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-03-27 22:08:48 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-03-27 22:11:58 -0700 |
| commit | edb747ceedcfec2eb9f698b0e11b7e94d9174f33 (patch) | |
| tree | 4b534b40c5a3a06a14e929c680c2ca9c28d1898e /src/test/compile-fail/mutable-class-fields.rs | |
| parent | c9102ee7a1e9c01e9befca44a0c0cb474fff89b4 (diff) | |
| download | rust-edb747ceedcfec2eb9f698b0e11b7e94d9174f33.tar.gz rust-edb747ceedcfec2eb9f698b0e11b7e94d9174f33.zip | |
Enforce mutability declarations in classes; correct shapes for classes
1. Enforce mutability declarations on class fields. Don't allow any mutation of class fields not declared as mutable (except inside the constructor). 2. Handle classes correctly in shape (treat classes like records).
Diffstat (limited to 'src/test/compile-fail/mutable-class-fields.rs')
| -rw-r--r-- | src/test/compile-fail/mutable-class-fields.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/compile-fail/mutable-class-fields.rs b/src/test/compile-fail/mutable-class-fields.rs new file mode 100644 index 00000000000..b345c0c80f1 --- /dev/null +++ b/src/test/compile-fail/mutable-class-fields.rs @@ -0,0 +1,15 @@ +// error-pattern:assigning to immutable field +class cat { + priv { + let mutable meows : uint; + } + + let how_hungry : int; + + new(in_x : uint, in_y : int) { meows = in_x; how_hungry = in_y; } +} + +fn main() { + let nyan : cat = cat(52u, 99); + nyan.how_hungry = 0; +} |
