You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By default, ELM does not include type information, requiring the engine to resolve function overloads using runtime typing. However, not all engines perform runtime type resolution of functions, resulting in potentially ambiguous calls at runtime. For example:
define function TestAny(a Integer):
a
define function TestAny(b String):
b
define TestAnyFunctionWithInteger:
TestAny(1)
define TestAnyFunctionWithString:
TestAny('joe')
The translator currently has options to output signature information (SignatureLevel on function invocations, but given the potential for runtime failure, it should be an error condition if this information is not included when there are potentially ambiguous runtime overloads as in the above example.
The text was updated successfully, but these errors were encountered:
By default, ELM does not include type information, requiring the engine to resolve function overloads using runtime typing. However, not all engines perform runtime type resolution of functions, resulting in potentially ambiguous calls at runtime. For example:
With runtime-typing, a correct evaluation is:
The translator currently has options to output signature information (SignatureLevel on function invocations, but given the potential for runtime failure, it should be an error condition if this information is not included when there are potentially ambiguous runtime overloads as in the above example.
The text was updated successfully, but these errors were encountered: