From 36e9c29b07c273afa5c1b0b55922ffd649796847 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Mon, 21 Oct 2024 06:31:37 -0300 Subject: [PATCH] cgen: add test for #22586 (#22600) --- vlib/v/tests/c_structs/cstruct_alias.h | 19 +++++++++++++++++ vlib/v/tests/c_structs/cstruct_alias_test.v | 23 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 vlib/v/tests/c_structs/cstruct_alias.h create mode 100644 vlib/v/tests/c_structs/cstruct_alias_test.v diff --git a/vlib/v/tests/c_structs/cstruct_alias.h b/vlib/v/tests/c_structs/cstruct_alias.h new file mode 100644 index 000000000..0084fd59c --- /dev/null +++ b/vlib/v/tests/c_structs/cstruct_alias.h @@ -0,0 +1,19 @@ +typedef struct Camera3D { + int a; +} Camera3D; + +typedef Camera3D Camera; + +typedef struct Vector3 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component +} Vector3; + +void UpdateCamera(Camera *camera, int mode) +{ +} + +void UpdateCameraPro(Camera *Camera, Vector3 movement , Vector3 rotation, float zoom) +{ +} \ No newline at end of file diff --git a/vlib/v/tests/c_structs/cstruct_alias_test.v b/vlib/v/tests/c_structs/cstruct_alias_test.v new file mode 100644 index 000000000..17b7f3353 --- /dev/null +++ b/vlib/v/tests/c_structs/cstruct_alias_test.v @@ -0,0 +1,23 @@ +#insert "@VMODROOT/cstruct_alias.h" + +@[typedef] +pub struct C.Camera3D { +} + +pub type Camera3D = C.Camera3D +pub type Camera = C.Camera3D + +// Update camera position for selected mode +pub fn C.UpdateCamera(camera &Camera, mode int) + +enum CameraMode { + camera_free +} + +fn test_main() { + mut camera := &Camera{} + C.UpdateCamera(camera, int(CameraMode.camera_free)) + + mut camera3d := &Camera3D{} + C.UpdateCamera(camera3d, int(CameraMode.camera_free)) +} -- 2.39.5