How to determine the size of a multi-dimensional dynamic array in a constraint?

In reply to dshanley:

My example is working in Questa 10.3d and 10.4c, without hacking ‘return value’ of function.

One of the output is:
ayload_desc size = 10

sgl size = 5

sgl[0].size= 2

sgl[1].size= 2

sgl[2].size= 2

sgl[3].size= 2

sgl[4].size= 2

payload_desc[0]= 0

payload_desc[1]= 0

payload_desc[2]= 5

payload_desc[3]= 0

payload_desc[4]= 10

payload_desc[5]= 0

payload_desc[6]= 0

payload_desc[7]= 0

payload_desc[8]= 0

payload_desc[9]= 0

Randomize Pass

It seems me that there should be a tool issue.