// TODO: This approach does not currently handle ArrayInLine or Call expressions that can be
// used as parameters to the main component. The Call case could be handled by finding the
// target function and evaluating it statically. The ArrayInLine (i.e. a literal array like
// `[9,3,1]`) however may require generating an additional wrapper struct that can construct
// the array and pass it to the main component. Alternatively, put the array in a global const
// and then generate the main component with one less template parameter and read the global.
Reproduced by the following:
circom/tests/arrays/array_copy1_loop.circom
circom/tests/arrays/array_copy1_vec.circom
circom/tests/arrays/array_copy4_vec.circom
Fails with the following error:
main component parameter {i} is not a positive constant
Reproduced by the following:
circom/tests/arrays/array_copy1_loop.circomcircom/tests/arrays/array_copy1_vec.circomcircom/tests/arrays/array_copy4_vec.circomFails with the following error:
main component parameter {i} is not a positive constant