func isCELConcatCall(e *exprpb.Expr) bool {
	switch e.GetExprKind().(type) {
	case *exprpb.Expr_CallExpr:
		call := e.GetCallExpr()
		if call.GetTarget() != nil {
			return false
		}
		if call.GetFunction() != operators.Add {
			return false
		}
		for _, arg := range call.GetArgs() {
			if !isCELStringExpr(arg) {
				return false
			}
		}
		return true
	}
	return false
}
// isCELConcatCall tests whether the expression is a concat function (+) with string, placeholder, or
// other concat call arguments.
isCELConcatCall tests whether the expression is a concat function (+) with string, placeholder, or
other concat call arguments.
// isCELConcatCall tests whether the expression is a concat function ( + ) with string placeholder or // other concat call arguments .
func isCELConcatCall(e *exprpb.Expr) bool {
	switch e.GetExprKind().(type) {
	case *exprpb.Expr_CallExpr:
		call := e.GetCallExpr()
		if call.GetTarget() != nil {
			return false
		}
		if call.GetFunction() != operators.Add {
			return false
		}
		for _, arg := range call.GetArgs() {
			if !isCELStringExpr(arg) {
				return false
			}
		}
		return true
	}
	return false
}
func isCELConcatCall ( e * exprpb . Expr ) bool { switch e . GetExprKind ( ) . ( type ) { case * exprpb . Expr_CallExpr : call := e . GetCallExpr ( ) if call . GetTarget ( ) != nil { return false } if call . GetFunction ( ) != operators . Add { return false } for _ , arg := range call . GetArgs ( ) { if ! isCELStringExpr ( arg ) { return false } } return true } return false }
isCELConcatCall tests whether the expression is a concat function (+) with string, placeholder, or
other concat call arguments.
isCELConcatCall tests whether the expression is a concat function ( + ) with string placeholder or other concat call arguments .