From db690b368f7e05b242f2e775f620f35ab0df5bc3 Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Tue, 20 Jan 2026 11:16:11 +0000 Subject: Smart derives... --- tests/features/test_move_semantics.zc | 41 ++++++++++++++--------------------- 1 file changed, 16 insertions(+), 25 deletions(-) (limited to 'tests/features/test_move_semantics.zc') 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' } +*/ -- cgit v1.2.3