diff --git a/src/protocol/tests/eval_silly.rs b/src/protocol/tests/eval_silly.rs index 004afb78eb4b7d1568271f57a7d2e7c4754716d9..ef7478190e07155df12dfaa841bb57bfe359848f 100644 --- a/src/protocol/tests/eval_silly.rs +++ b/src/protocol/tests/eval_silly.rs @@ -184,31 +184,32 @@ fn test_struct_fields() { fn test_field_selection_polymorphism() { // Bit silly, but just to be sure Tester::new_single_source_expect_ok("struct field shuffles", " -struct VecXYZ { T x, T y, T z } -struct VecYZX { T y, T z, T x } -struct VecZXY { T z, T x, T y } -func modify_x(T input) -> T { - input.x = 1337; - return input; -} + struct VecXYZ { T x, T y, T z } + struct VecYZX { T y, T z, T x } + struct VecZXY { T z, T x, T y } -func foo() -> bool { - auto xyz = VecXYZ{ x: 1, y: 2, z: 3 }; - auto yzx = VecYZX{ y: 2, z: 3, x: 1 }; - auto zxy = VecZXY{ x: 1, y: 2, z: 3 }; - - auto mod_xyz = modify_x(xyz); - auto mod_yzx = modify_x(yzx); - auto mod_zxy = modify_x(zxy); - - return - xyz.x == 1 && xyz.y == 2 && xyz.z == 3 && - yzx.x == 1 && yzx.y == 2 && yzx.z == 3 && - zxy.x == 1 && zxy.y == 2 && zxy.z == 3 && - mod_xyz.x == 1337 && mod_xyz.y == 2 && mod_xyz.z == 3 && - mod_yzx.x == 1337 && mod_yzx.y == 2 && mod_yzx.z == 3 && - mod_zxy.x == 1337 && mod_zxy.y == 2 && mod_zxy.z == 3; -} + func modify_x(T input) -> T { + input.x = 1337; + return input; + } + + func foo() -> bool { + auto xyz = VecXYZ{ x: 1, y: 2, z: 3 }; + auto yzx = VecYZX{ y: 2, z: 3, x: 1 }; + auto zxy = VecZXY{ x: 1, y: 2, z: 3 }; // different initialization order + + auto mod_xyz = modify_x(xyz); + auto mod_yzx = modify_x(yzx); + auto mod_zxy = modify_x(zxy); + + return + xyz.x == 1 && xyz.y == 2 && xyz.z == 3 && + yzx.x == 1 && yzx.y == 2 && yzx.z == 3 && + zxy.x == 1 && zxy.y == 2 && zxy.z == 3 && + mod_xyz.x == 1337 && mod_xyz.y == 2 && mod_xyz.z == 3 && + mod_yzx.x == 1337 && mod_yzx.y == 2 && mod_yzx.z == 3 && + mod_zxy.x == 1337 && mod_zxy.y == 2 && mod_zxy.z == 3; + } ").for_function("foo", |f| { f.call_ok(Some(Value::Bool(true))); });