Here every affected call in the cycle gets a validation error (fun1::fun2, fun2::fun4, and fun4::fun1). In case a function B is called several times from a function A, only first call instance is marked with error (e.g., only first fun1::fun2).
If a Module has multiple recursion cycles, all of them are identified. See example scenarios in example/recursions.calc.
Resolves #1019. Recursion validation implemented using BFS algorithm for nested function calls as graph nodes.
Implemented scenarios:
def fun1(x): fun1(x);
Here every affected call in the cycle gets a validation error (fun1::fun2, fun2::fun4, and fun4::fun1). In case a function B is called several times from a function A, only first call instance is marked with error (e.g., only first fun1::fun2).
example/recursions.calc
.