You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have logic to output `...` when a type gets too deep and to stop
recursing at that point. Most notably this is useful when outputting
an occurs-check-failing type. But the max depth is 64, so you can make a
type of size 2^64 without hitting this limit, which will still blow out
your memory and effectively stall.
This can create pretty confusing symptoms when fuzzing for pathological
programs -- you will get an apparent stall with no output, and no matter
how many debug printlns you add it will appear that they all execute
before the stall -- and it turns out that in fact all your code was
working correctly up to the point of the final panic where it tries to
*display* an occurs-check error.
Cut off the display at 10000 nodes. If somebody really needs to output a
text representation of such a thing they can write their own logic.
0 commit comments