private static JObject OptimizeConditionObject()

in src/PSRule.Rules.Azure/Data/Policy/PolicyAssignmentVisitor.cs [1665:1692]


        private static JObject OptimizeConditionObject(PolicyDefinition policyDefinition, JObject condition, bool keep = false)
        {
            if (condition == null || !keep && OptimizeTypeCondition(policyDefinition, condition))
                return null;

            // Handle allOf and anyOf depth
            if (condition.TryArrayProperty(PROPERTY_ALLOF, out var items) ||
                condition.TryArrayProperty(PROPERTY_ANYOF, out items))
            {
                foreach (var item in items.OfType<JObject>().ToArray())
                {
                    if (OptimizeConditionObject(policyDefinition, item) == null)
                        item.Remove();
                }

                // Pull up child condition if not a sub-selector or quantifier
                if (items.Count == 1 && condition.Count == 1)
                {
                    return items[0].Value<JObject>();
                }
            }
            // Handle field merge
            else if (condition.TryGetProperty(PROPERTY_FIELD, out var field))
            {
                MergeWithPeerCondition(condition, field);
            }
            return condition;
        }