Added the rest of current builtins. Started properly implementing compile tests.

This commit is contained in:
2025-09-11 11:03:02 +02:00
parent 9461fe626f
commit 79ec6cc42f
9 changed files with 255 additions and 38 deletions

View File

@@ -1,7 +1,7 @@
scope (global) [
[properties] : {color : float4}
[pixel__ps_main] : () -> float4
[vertex__vs_main] : (pos : float3) -> float3
[properties] : {color : float4}
scope (properties) [
[color] : float4
]

View File

@@ -1,7 +1,7 @@
scope (global) [
[camera] : {projection : float4x4, view : float4x4}
[pixel__ps_main] : () -> float4
[vertex__vs_main] : (pos : float4) -> float4
[camera] : {projection : float4x4, view : float4x4}
scope (camera) [
[projection] : float4x4
[view] : float4x4

View File

@@ -0,0 +1,7 @@
scope (global) [
[vertex__vs_main] : ()
scope (vertex__vs_main) [
[i] : int
[x] : int
]
]

View File

@@ -1,7 +1,7 @@
scope (global) [
[props] : {color : float4}
[pixel__ps_main] : () -> float4
[vertex__vs_main] : (pos : float4) -> float4
[props] : {color : float4}
scope (props) [
[color] : float4
]

View File

@@ -7,20 +7,15 @@
 result : float4 = float4(1.0, foo * res, 0.0, 1.0);
^
 Possible overloads:
 foreign float4 :: (float, float, float, float) -> float4; (test/wrong_multiply.ink:86)
 foreign float4 :: (float4) -> float4; (test/wrong_multiply.ink:87)
 foreign float4 :: (float2, float2) -> float4; (test/wrong_multiply.ink:88)
 foreign float4 :: (float2, float, float) -> float4; (test/wrong_multiply.ink:89)
 foreign float4 :: (float, float2, float) -> float4; (test/wrong_multiply.ink:90)
 foreign float4 :: (float, float2, float) -> float4; (test/wrong_multiply.ink:90)
 foreign float4 :: (float, float, float2) -> float4; (test/wrong_multiply.ink:91)
 foreign float4 :: (float, float, float2) -> float4; (test/wrong_multiply.ink:91)
 foreign float4 :: (float3, float) -> float4; (test/wrong_multiply.ink:92)
 foreign float4 :: (float3, float) -> float4; (test/wrong_multiply.ink:92)
 foreign float4 :: (float, float3) -> float4; (test/wrong_multiply.ink:93)
 foreign float4 :: (float, float3) -> float4; (test/wrong_multiply.ink:93)
 foreign float4 :: (float) -> float4; (test/wrong_multiply.ink:94)
 foreign float4 :: (float) -> float4; (test/wrong_multiply.ink:94)
 float4 :: (float, float, float, float); (test/wrong_multiply.ink:0)
 float4 :: (float2, float2); (test/wrong_multiply.ink:0)
 float4 :: (float2, float, float); (test/wrong_multiply.ink:0)
 float4 :: (float, float2, float); (test/wrong_multiply.ink:0)
 float4 :: (float, float, float2); (test/wrong_multiply.ink:0)
 float4 :: (float, float3); (test/wrong_multiply.ink:0)
 float4 :: (float3, float); (test/wrong_multiply.ink:0)
 float4 :: (float4); (test/wrong_multiply.ink:0)
 float4 :: (float); (test/wrong_multiply.ink:0)
test/wrong_multiply.ink:4,34: error: Type mismatch. Expected float got float2
 found:

View File

@@ -7,20 +7,15 @@
 color : float4 = float4(y, 1.0, 1.0, 1.0);
^
 Possible overloads:
 foreign float4 :: (float, float, float, float) -> float4; (test/wrong_type_for_function.ink:86)
 foreign float4 :: (float4) -> float4; (test/wrong_type_for_function.ink:87)
 foreign float4 :: (float2, float2) -> float4; (test/wrong_type_for_function.ink:88)
 foreign float4 :: (float2, float, float) -> float4; (test/wrong_type_for_function.ink:89)
 foreign float4 :: (float, float2, float) -> float4; (test/wrong_type_for_function.ink:90)
 foreign float4 :: (float, float2, float) -> float4; (test/wrong_type_for_function.ink:90)
 foreign float4 :: (float, float, float2) -> float4; (test/wrong_type_for_function.ink:91)
 foreign float4 :: (float, float, float2) -> float4; (test/wrong_type_for_function.ink:91)
 foreign float4 :: (float3, float) -> float4; (test/wrong_type_for_function.ink:92)
 foreign float4 :: (float3, float) -> float4; (test/wrong_type_for_function.ink:92)
 foreign float4 :: (float, float3) -> float4; (test/wrong_type_for_function.ink:93)
 foreign float4 :: (float, float3) -> float4; (test/wrong_type_for_function.ink:93)
 foreign float4 :: (float) -> float4; (test/wrong_type_for_function.ink:94)
 foreign float4 :: (float) -> float4; (test/wrong_type_for_function.ink:94)
 float4 :: (float, float, float, float); (test/wrong_type_for_function.ink:0)
 float4 :: (float2, float2); (test/wrong_type_for_function.ink:0)
 float4 :: (float2, float, float); (test/wrong_type_for_function.ink:0)
 float4 :: (float, float2, float); (test/wrong_type_for_function.ink:0)
 float4 :: (float, float, float2); (test/wrong_type_for_function.ink:0)
 float4 :: (float, float3); (test/wrong_type_for_function.ink:0)
 float4 :: (float3, float); (test/wrong_type_for_function.ink:0)
 float4 :: (float4); (test/wrong_type_for_function.ink:0)
 float4 :: (float); (test/wrong_type_for_function.ink:0)
test/wrong_type_for_function.ink:11,24: error: Type mismatch. Expected float got float2
 found: