From b635542fbaabc9d0ec6a8550ce03582cec3a01ff Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 May 2025 14:47:13 -0400 Subject: [PATCH] UnmarkDeep is not needed here Calling LengthInt does not require unmarking all nested values. The UnmarkDeep call causes an unnecessary deep copy, and generate lots of garbage every time a for_each collection was evaluated, which is at least once for each instance. --- internal/terraform/eval_for_each.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/terraform/eval_for_each.go b/internal/terraform/eval_for_each.go index ae02d29669..3e090a986f 100644 --- a/internal/terraform/eval_for_each.go +++ b/internal/terraform/eval_for_each.go @@ -398,6 +398,6 @@ func (ev *forEachEvaluator) validateResource(forEachVal cty.Value) tfdiags.Diagn // markSafeLengthInt allows calling LengthInt on marked values safely func markSafeLengthInt(val cty.Value) int { - v, _ := val.UnmarkDeep() + v, _ := val.Unmark() return v.LengthInt() }