Skip to main content

create_promise_arguments

Function create_promise_arguments 

Source
fn create_promise_arguments(
    args: &[Arg],
    env: &Environment,
) -> (SmallVec<[RValue; 4]>, SmallVec<[(String, RValue); 2]>)
Expand description

Create lazy promise arguments for closure calls.

Instead of evaluating arguments eagerly, wraps each argument expression in an RValue::Promise that captures the calling environment. The promise is only forced (evaluated) when its value is actually needed.

... (dots) entries are forwarded as-is — if they already contain promises, those promises are passed through without forcing.