Four Js Development Tools Forum

Discussions by product => Genero BDL => Topic started by: Lu?s T. on February 04, 2021, 04:32:06 pm



Title: Passing an dynami array for a function reference
Post by: Lu?s T. on February 04, 2021, 04:32:06 pm
When I compile the following code, the compiler gives an error in line 17:

| The variable 'arrVals' is too complex a type to be used in an expression.
| See error number -4340.

I am using Genero 3.1! What am I doing wrong? How can I get around of it?
I need to implement a callback scheme and this is important to do it.

Code
  1. type myFuncType function( p dynamic array of string ) returns integer
  2.  
  3. define f myFuncType
  4. define callBackFuncs dictionary of myFuncType
  5. define arrVals dynamic array of string
  6. define x integer
  7.  
  8. main
  9.  
  10.    let arrVals[1] = "str1"
  11.  
  12.    let f = function f1
  13.    let callBackFuncs["funckey1"] = function f1
  14.  
  15.    call f1( arrVals ) returning x
  16.    call f( arrVals ) returning x
  17.    call callBackFuncs["funckey1"]( arrVals ) returning
  18.  
  19. end main
  20.  
  21. function f1( p dynamic array of string ) returns integer
  22.    return p.getLength()
  23. end function
  24.  
  25.  


Title: Re: Passing an dynami array for a function reference
Post by: Sebastien F. on February 04, 2021, 05:41:59 pm
Hello,

The x variable is missing in the line

    call callBackFuncs["funckey1"]( arrVals ) returning x

Just tested with 3.20.12, same issue.

Not sure yet it's a bug of feature.

Try this workaround:

Code
  1.   --call callBackFuncs["funckey1"]( arrVals ) returning x
  2.   let f = callBackFuncs["funckey1"]
  3.   call f( arrVals ) returning x
  4.  


Title: Re: Passing an dynami array for a function reference
Post by: Lu?s T. on February 04, 2021, 06:32:25 pm
Thanks Sebastien,

The workaround works.
I any case I thing this is an bug.
I have other similar situations where it works to call directly the array cell.
The only difference are the type of the arguments of the function.
I couldn't find anything in the documentation that restrict this.


Title: Re: Passing an dynami array for a function reference
Post by: Sebastien F. on February 05, 2021, 10:57:29 am
Bug reference: FGL-5531
Seb