diff options
Diffstat (limited to 'tests/features/test_move_semantics.zc')
| -rw-r--r-- | tests/features/test_move_semantics.zc | 41 |
1 files changed, 16 insertions, 25 deletions
diff --git a/tests/features/test_move_semantics.zc b/tests/features/test_move_semantics.zc index 70390c2..bf0d717 100644 --- a/tests/features/test_move_semantics.zc +++ b/tests/features/test_move_semantics.zc @@ -7,7 +7,7 @@ struct Mover { val: int; } -fn test_basic_move() { +test "basic_move" { var p1 = Mover { val: 10 }; var p2 = p1; // p1 moved to p2 @@ -18,14 +18,14 @@ fn test_basic_move() { // var p3 = p1; } -fn test_primitive_copy() { +test "primitive_copy" { var i = 10; var j = i; // Copy var k = i; // Copy again - should be valid assert(k == 10, "Primitive copy failed"); } -fn test_reassignment() { +test "reassignment" { var m1 = Mover { val: 1 }; var m2 = m1; // m1 moved @@ -34,31 +34,22 @@ fn test_reassignment() { assert(m3.val == 2, "Resurrection failed"); } -fn test_func_arg(m: Mover) { +fn consume(m: Mover) { assert(m.val == 10, "Func arg failed"); } -fn main() { - test_basic_move(); - test_primitive_copy(); - test_reassignment(); - +test "func_arg" { var m = Mover { val: 10 }; - test_func_arg(m); // m moved - - // ** Negative Tests (Uncomment to verify) ** - - // 1. Use after move (Assignment) - // test_basic_move(); // See line 18 inside function + consume(m); // m moved - // 2. Use after move (Call) - // test_func_arg(m); // Should fail: Use of moved value 'm' - - // 3. Use after return - /* - fn fail_return(m: Mover) -> Mover { - var m2 = m; - return m; // Should fail: Use of moved value 'm' - } - */ + // 2. Use after move (Call - Negative Test) + // consume(m); // Should fail: Use of moved value 'm' +} + +/* +// 3. Use after return (Negative Test) +fn fail_return(m: Mover) -> Mover { + var m2 = m; + return m; // Should fail: Use of moved value 'm' } +*/ |
