| 226 | typename = std::enable_if_t<IsExprLike<Target>::value>, |
| 227 | typename = std::enable_if_t<IsArrayLike<Expr, Args>::value>> |
| 228 | Expr NewMemberCall(ExprId id, Function function, Target target, Args args) { |
| 229 | Expr expr; |
| 230 | expr.set_id(id); |
| 231 | auto& call_expr = expr.mutable_call_expr(); |
| 232 | call_expr.set_function(std::move(function)); |
| 233 | call_expr.set_target(std::move(target)); |
| 234 | call_expr.set_args(std::move(args)); |
| 235 | return expr; |
| 236 | } |
| 237 | |
| 238 | template <typename Expr, typename = std::enable_if_t<IsExprLike<Expr>::value>> |
| 239 | ListExprElement NewListElement(Expr expr, bool optional = false) { |
no test coverage detected