Skip to content

Commit 720053a

Browse files
committed
removed the prefix=... syntax for @returned_quantities
1 parent cc3af46 commit 720053a

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

src/submodel_macro.jl

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -363,59 +363,49 @@ julia> @varname(x) in keys(VarInfo(submodel_noprefix()))
363363
true
364364
365365
julia> # Using a static string.
366-
@model submodel_prefix_string() = a = @returned_quantities @prefix inner() "my prefix"
366+
@model submodel_prefix_string() = a = @returned_quantities @prefix(inner(), "my prefix")
367367
submodel_prefix_string (generic function with 2 methods)
368368
369369
julia> @varname(var"my prefix.x") in keys(VarInfo(submodel_prefix_string()))
370370
true
371371
372372
julia> # Using string interpolation.
373-
@model submodel_prefix_interpolation() = a = @returned_quantities @prefix inner() "\$(nameof(inner()))"
373+
@model submodel_prefix_interpolation() = a = @returned_quantities @prefix(inner(), "\$(nameof(inner()))")
374374
submodel_prefix_interpolation (generic function with 2 methods)
375375
376376
julia> @varname(var"inner.x") in keys(VarInfo(submodel_prefix_interpolation()))
377377
true
378378
379379
julia> # Or using some arbitrary expression.
380-
@model submodel_prefix_expr() = a = @returned_quantities prefix=1 + 2 inner()
380+
@model submodel_prefix_expr() = a = @returned_quantities @prefix(inner(), 1 + 2)
381381
submodel_prefix_expr (generic function with 2 methods)
382382
383383
julia> @varname(var"3.x") in keys(VarInfo(submodel_prefix_expr()))
384384
true
385385
```
386386
"""
387387
macro returned_quantities(expr)
388-
return returned_quantities_expr(:(prefix = false), expr)
389-
end
390-
391-
macro returned_quantities(prefix_expr, expr)
392-
return returned_quantities_expr(prefix_expr, expr)
388+
return returned_quantities_expr(expr)
393389
end
394390

395391
"""
396-
@returned_quantities_expr model
392+
returned_quantities_expr(model_expr[, ctx_expr])
397393
398394
Returns an expression that captures the return-values of a model in addition to the varinfo.
399-
"""
400-
function returned_quantities_expr(prefix_expr, expr, ctx=esc(:__context__))
401-
prefix_left, prefix = getargs_assignment(prefix_expr)
402-
if prefix_left !== :prefix
403-
error("$(prefix_left) is not a valid kwarg")
404-
end
405395
396+
!!! warning
397+
This is only meant to be used in the body of `@model`.
398+
"""
399+
function returned_quantities_expr(model_expr, ctx_expr=esc(:__context__))
406400
# The user expects `@returned_quantities ...` to return the
407401
# return-value of the `...`, hence we need to capture
408402
# the return-value and handle it correctly.
409403
@gensym retval
410404

411-
# Prefix.
412-
if prefix !== nothing
413-
ctx = prefix_submodel_context(prefix, ctx)
414-
end
415405
return quote
416406
# Evaluate the model and capture the return values + varinfo.
417407
$retval, $(esc(:__varinfo__)) = $(_evaluate!!)(
418-
$(esc(expr)), $(esc(:__varinfo__)), $(ctx)
408+
$(esc(model_expr)), $(esc(:__varinfo__)), $(ctx_expr)
419409
)
420410

421411
# Return the return-value of the model.

0 commit comments

Comments
 (0)