Added new method on IExternalRule to help with invariantexpression ch… (#2725)

On an effort to remove null rule binding, we need the ability to have an
option to apply null binding before doing the check if binding is null.
This change adds a new method on IExternalRule to help with that.
This commit is contained in:
Shpakh-MSFT 2024-11-01 06:11:10 -07:00 коммит произвёл GitHub
Родитель a1560ea79f
Коммит e1e538183a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
2 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -22,5 +22,8 @@ namespace Microsoft.PowerFx.Core.App.Controls
// Returns true when Binding is non-null, otherwise false.
bool HasValidBinding { get; }
// Returns true when rule is constant.
bool IsInvariantExpression { get; }
}
}

Просмотреть файл

@ -3619,9 +3619,7 @@ namespace Microsoft.PowerFx.Core.Binding
// we need to mark the node as constant, and save the control info so we may look up the
// rule later.
if (controlInfo?.GetRule(property.InvariantName) is IExternalRule rule &&
rule.HasValidBinding &&
!rule.HasErrorsOrWarnings &&
rule.Binding.IsConstant(rule.Binding.Top))
rule.IsInvariantExpression)
{
value = controlInfo;
isConstant = true;