The main changes is to disallow array values in arrays - if we find an array element which is itself an array we replace it with unknown value.
This stops all kinds of weird recursion behavior in the analysis and fixes cases where the tool would either crash with stack overflow or hang (exponential explosion of states).
This is a port of the trimmer/analyzer changes from https://github.com/dotnet/runtime/pull/82818.
The main changes is to disallow array values in arrays - if we find an array element which is itself an array we replace it with unknown value.
This stops all kinds of weird recursion behavior in the analysis and fixes cases where the tool would either crash with stack overflow or hang (exponential explosion of states).
Adds the related tests as well.