diff --git a/tests/issues/run.bat b/tests/issues/run.bat index 7ed43205d..267a2e030 100644 --- a/tests/issues/run.bat +++ b/tests/issues/run.bat @@ -17,6 +17,8 @@ set COMMON=-define:ODIN_TEST_FANCY=false -file -vet -strict-style ..\..\..\odin test ..\test_issue_2666.odin %COMMON% || exit /b ..\..\..\odin test ..\test_issue_4210.odin %COMMON% || exit /b ..\..\..\odin test ..\test_issue_4584.odin %COMMON% || exit /b +..\..\..\odin build ..\test_issue_5043.odin %COMMON% || exit /b +..\..\..\odin build ..\test_issue_5097.odin %COMMON% || exit /b @echo off diff --git a/tests/issues/run.sh b/tests/issues/run.sh index 54543980e..5102ee307 100755 --- a/tests/issues/run.sh +++ b/tests/issues/run.sh @@ -24,6 +24,8 @@ else echo "SUCCESSFUL 0/1" exit 1 fi +$ODIN build ../test_issue_5043.odin $COMMON +$ODIN build ../test_issue_5097.odin $COMMON set +x diff --git a/tests/issues/test_issue_5043.odin b/tests/issues/test_issue_5043.odin new file mode 100644 index 000000000..ce36bf674 --- /dev/null +++ b/tests/issues/test_issue_5043.odin @@ -0,0 +1,23 @@ +// Tests issue #5043 https://github.com/odin-lang/Odin/issues/5043 +package test_issues + +Table :: map [string] Type +List :: [dynamic] Type + +Type :: union { + ^Table, + ^List, + i64, +} + + +main :: proc() { + v: Type = 5 + + switch t in v { + case ^Table: // or case ^map [string] Type: + case ^List: + case i64: + + } +} diff --git a/tests/issues/test_issue_5097.odin b/tests/issues/test_issue_5097.odin new file mode 100644 index 000000000..57ef60b8d --- /dev/null +++ b/tests/issues/test_issue_5097.odin @@ -0,0 +1,15 @@ +// Tests issue #5097 https://github.com/odin-lang/Odin/issues/5097 +package test_issues + +Node_Ptr :: ^Node // the typedef... + +Node :: struct { + prev, next: Node_Ptr, // replacing the type with ^Node also fixes it +} + +// ...if placed here, it works just fine + +main :: proc() { + node: Node_Ptr + _ = node +}