Inconsistent late binding behavior with overloaded methods
I'm only reported this so it's logged and we are aware about it, but I suggest leaving it as is for now, as it's an area where we can easily break something else. Unless we do get a report about this of course. (I found this myself, while investigating another issue).
The following code has a method with 2 overloads, one with 1 and another with 3 parameters.
When calling it (late bound) with 2 arguments, no error is thrown and the overload 1 is called. When calling it with 4 arguments, there's a runtime error "Method is overloaded, Cannot determine the right overload to call." Same runtime error when calling it with no arguments
Runtime errors when using 0 or 4 arguments make sense, but then shouldn't calling the method also with 2 arguments produce a runtime error?
CLASS TestClass
METHOD Seek(a AS INT) AS VOID
? a
METHOD Seek(a AS INT, b AS INT, c AS INT) AS VOID
? a,b,c
END CLASS
FUNCTION Start() AS VOID
LOCAL u AS USUAL
u := TestClass{}
u:Seek(1,2) // OK
u:Seek(1,2,3,4) // exception
u:Seek() // exception