CEL.Expr.Call (CEL v0.2.0)

Copy Markdown View Source

A function call, f(args) or target.f(args).

function is the name as written, or for a namespaced function such as math.greatest(...), with its namespace; target is the receiver of a method call and nil otherwise.

Operators are calls too, with CEL's internal names: _+_, _==_, !_, -_, _&&_, _||_, _?_:_, _[_], _[?_], @in, .... So is an enum constructor such as pkg.Enum(1), with function the enum's full name and overload_id "enum_constructor".

overload_id is the overload the checker chose, such as "add_int64". When that depends on types known only when evaluating, it names the dispatch instead, such as "_+__dyn" for dyn_value + 1.

Summary

Types

t()

@type t() :: %CEL.Expr.Call{
  args: [CEL.Expr.t()],
  function: String.t(),
  id: CEL.Checked.expr_id(),
  overload_id: String.t(),
  target: CEL.Expr.t() | nil,
  type: CEL.Expr.type()
}