Almost fix function overloading. Return var issues.

This commit is contained in:
2024-06-22 17:03:38 +02:00
parent d5fdaca1ca
commit d2614b3ba9
6 changed files with 65 additions and 74 deletions

View File

@@ -1,16 +1,4 @@
test/unknown_overload.shd:6,0: error: Procedure call did not match any of the possible overloads for 'foo'
 found:
foo(v, v);
^^^
 While matching argument 1 in function call.
 foo(v, v);
^
 Possible overloads:
 foo :: (v1 : float3, v2 : float3) { (test/unknown_overload.shd:1)
 foo :: (v1 : float2, v2 : float2, v3 : float2) { (test/unknown_overload.shd:2)
test/unknown_overload.shd:6,4: error: Type mismatch. Expected float3 got float
test/unknown_overload.shd:6,4: error: Type mismatch. Expected float3 got float
 found:
foo(v, v);
^
@@ -30,4 +18,16 @@
got:
v : float = 2.0
test/unknown_overload.shd:6,0: error: Procedure call did not match any of the possible overloads for 'foo'
 found:
foo(v, v);
^^^
 While matching argument 1 in function call.
 foo(v, v);
^
 Possible overloads:
 foo :: (v1 : float3, v2 : float3) { (test/unknown_overload.shd:1)
 foo :: (v1 : float2, v2 : float2, v3 : float2) { (test/unknown_overload.shd:2)


View File

@@ -6,6 +6,6 @@
float
got:
res : float2 = float2(2.0, 2.0)
res : float2 = float2(2.0, 2.0);


View File

@@ -1,4 +1,14 @@
test/wrong_type_for_function.shd:11,17: error: Procedure call did not match any of the possible overloads for 'float4'
test/wrong_type_for_function.shd:11,24: error: Type mismatch. Expected float got float2
 found:
color : float4 = float4(y, 1.0, 1.0, 1.0);
^
expected:
float
got:
y : float2 = foo()
test/wrong_type_for_function.shd:11,17: error: Procedure call did not match any of the possible overloads for 'float4'
 found:
color : float4 = float4(y, 1.0, 1.0, 1.0);
^^^^^^
@@ -9,14 +19,4 @@
 Possible overloads:
 foreign float4 :: (float, float, float, float) -> float4; (test/wrong_type_for_function.shd:79)
test/wrong_type_for_function.shd:11,24: error: Type mismatch. Expected float got float2
 found:
color : float4 = float4(y, 1.0, 1.0, 1.0);
^
expected:
float
got:
y : float2 = foo()