Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"expected_json": {
"dry_run_completion_required": true,
"interface_contract_verification_targets": 0,
"pure_node_determinism_targets": 220,
"pure_node_determinism_targets": 221,
"resource_acquire_targets": 4,
"resource_provide_targets": 1,
"resource_release_targets": 4,
Expand All @@ -36,7 +36,7 @@
"service_transport_permission_scoped_targets": 0,
"service_transport_prepare_targets": 10,
"service_transport_readonly_targets": 0,
"total_obligations": 230,
"total_obligations": 231,
"transport_execution_targets": 10
}
}
Expand Down
7 changes: 7 additions & 0 deletions core/daglang/daglang-emit/src/computation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,13 @@ fn classify_primitive(
outputs,
body: PureBody::Literal(serde_json::Value::Null),
}),
// RT4a: Return expression compute nodes are resolved at runtime
// by the DAG executor, not by the emit pipeline.
PrimitiveOpKind::ReturnExprCompute { .. } => Ok(Computation::Pure {
inputs,
outputs,
body: PureBody::Literal(serde_json::Value::Null),
}),
}
}

Expand Down
5 changes: 5 additions & 0 deletions core/daglang/daglang-emit/src/rust_exec_runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,11 @@ fn classify_handler(op: &LoweredOp) -> Option<HandlerKind> {
kind: PrimitiveOpKind::ContentUpsertOutputPath { .. },
..
} => return None,
// RT4a: Return expression compute nodes are resolved at runtime.
LoweredOp::Primitive {
kind: PrimitiveOpKind::ReturnExprCompute { .. },
..
} => return None,
Comment thread
briansrls marked this conversation as resolved.
Resolved
}

let (module, name, obligation) = match op {
Expand Down
3 changes: 2 additions & 1 deletion core/daglang/daglang-lower/src/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,8 @@ fn lower_stmt(stmt: &ast::Stmt, variant_names: &HashSet<String>) -> LoweredStmt
}
}

fn lower_expr(expr: &ast::Expr, variant_names: &HashSet<String>) -> LoweredExpr {
/// Lower a single AST expression to the compiler's expression IR.
pub fn lower_expr(expr: &ast::Expr, variant_names: &HashSet<String>) -> LoweredExpr {
match expr {
ast::Expr::Literal(lit) => LoweredExpr::Literal(lower_literal(lit)),
// Bare unit variant (e.g., `Closed`)
Expand Down
Loading
Loading