373f94fe89
This includes a fix to prevent unintentional infinite recursion when trying to unify multiple object types to a single type for conversion to list(any). Sadly I wasn't able to reproduce the problem as reported (in #20728), so therefore I wasn't able to write a Terraform test for it, but I have confirmed that the cty behavior here was incorrect anyway (recursively calling the same function we're already in with the same arguments is clearly not productive) and so this change will allow whatever situation that was to terminate with a type conversion error, rather than causing a stack overflow. It's likely that there is another bug lurking under this, since the problematic code here was supposed to be unreachable, but avoiding the crash is the priority for now. If the problem re-surfaces then it should at least be an error message with some additional context about what the goal of the caller was. This also includes an unrelated fix for the gocty package, which doesn't affect Terraform because it makes very little use of that package. |
||
---|---|---|
.. | ||
compare_types.go | ||
conversion.go | ||
conversion_collection.go | ||
conversion_dynamic.go | ||
conversion_object.go | ||
conversion_primitive.go | ||
conversion_tuple.go | ||
doc.go | ||
mismatch_msg.go | ||
public.go | ||
sort_types.go | ||
unify.go |