fix swizzle in for in statement

Fixes #1730
This commit is contained in:
Laytan Laats
2025-06-02 20:30:48 +02:00
parent d4a1670b93
commit f94fc992d7
5 changed files with 44 additions and 6 deletions
+1
View File
@@ -9,6 +9,7 @@ set COMMON=-define:ODIN_TEST_FANCY=false -file -vet -strict-style
..\..\..\odin test ..\test_issue_829.odin %COMMON% || exit /b
..\..\..\odin test ..\test_issue_1592.odin %COMMON% || exit /b
..\..\..\odin test ..\test_issue_1730.odin %COMMON% || exit /b
..\..\..\odin test ..\test_issue_2056.odin %COMMON% || exit /b
..\..\..\odin build ..\test_issue_2113.odin %COMMON% -debug || exit /b
..\..\..\odin test ..\test_issue_2466.odin %COMMON% || exit /b
+1
View File
@@ -10,6 +10,7 @@ set -x
$ODIN test ../test_issue_829.odin $COMMON
$ODIN test ../test_issue_1592.odin $COMMON
$ODIN test ../test_issue_1730.odin $COMMON
$ODIN test ../test_issue_2056.odin $COMMON
$ODIN build ../test_issue_2113.odin $COMMON -debug
$ODIN test ../test_issue_2466.odin $COMMON
+21
View File
@@ -0,0 +1,21 @@
package test_issues
import "core:testing"
// Tests issue #1730 https://github.com/odin-lang/Odin/issues/1730
@(test)
test_issue_1730 :: proc(t: ^testing.T) {
ll := [4]int{1, 2, 3, 4}
for l, i in ll.yz {
testing.expect(t, i <= 1)
if i == 0 {
testing.expect_value(t, l, 2)
} else if i == 1 {
testing.expect_value(t, l, 3)
}
}
out: [4]int
out.yz = ll.yz
testing.expect_value(t, out, [4]int{0, 2, 3, 0})
}