@@ -207,41 +207,41 @@ ERROR: LoadError: cannot automatically prefix with no left-hand side
207
207
resolved at runtime.
208
208
"""
209
209
macro submodel (prefix_expr, expr)
210
- return submodel (prefix_expr, expr, esc (:__model__ . context ))
210
+ return submodel (prefix_expr, expr, esc (:__model__ ))
211
211
end
212
212
213
213
# Automatic prefixing.
214
- function prefix_submodel_context (prefix:: Bool , left:: Symbol , ctx )
215
- return prefix ? prefix_submodel_context (left, ctx ) : ctx
214
+ function prefix_submodel_context (prefix:: Bool , left:: Symbol , model )
215
+ return prefix ? prefix_submodel_context (left, model ) : :( $ model . context)
216
216
end
217
217
218
- function prefix_submodel_context (prefix:: Bool , left:: Expr , ctx )
219
- return prefix ? prefix_submodel_context (varname (left), ctx ) : ctx
218
+ function prefix_submodel_context (prefix:: Bool , left:: Expr , model )
219
+ return prefix ? prefix_submodel_context (varname (left), model ) : :( $ model . context)
220
220
end
221
221
222
222
# Manual prefixing.
223
- prefix_submodel_context (prefix, left, ctx ) = prefix_submodel_context (prefix, ctx )
224
- function prefix_submodel_context (prefix, ctx )
223
+ prefix_submodel_context (prefix, left, model ) = prefix_submodel_context (prefix, model )
224
+ function prefix_submodel_context (prefix, model )
225
225
# E.g. `prefix="asd[$i]"` or `prefix=asd` with `asd` to be evaluated.
226
- return :($ (PrefixContext)($ (Val)($ (Symbol)($ (esc (prefix)))), $ ctx ))
226
+ return :($ (PrefixContext)($ (Val)($ (Symbol)($ (esc (prefix)))), $ model . context ))
227
227
end
228
228
229
- function prefix_submodel_context (prefix:: Union{AbstractString,Symbol} , ctx )
229
+ function prefix_submodel_context (prefix:: Union{AbstractString,Symbol} , model )
230
230
# E.g. `prefix="asd"`.
231
- return :($ (PrefixContext)($ (esc (Meta. quot (Val (Symbol (prefix))))), $ ctx ))
231
+ return :($ (PrefixContext)($ (esc (Meta. quot (Val (Symbol (prefix))))), $ model . context ))
232
232
end
233
233
234
- function prefix_submodel_context (prefix:: Bool , ctx )
234
+ function prefix_submodel_context (prefix:: Bool , model )
235
235
if prefix
236
236
error (" cannot automatically prefix with no left-hand side" )
237
237
end
238
238
239
- return ctx
239
+ return :( $ model . context)
240
240
end
241
241
242
242
const SUBMODEL_DEPWARN_MSG = " `@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax."
243
243
244
- function submodel (prefix_expr, expr, ctx = esc (:__model__ . context ))
244
+ function submodel (prefix_expr, expr, model = esc (:__model__ ))
245
245
prefix_left, prefix = getargs_assignment (prefix_expr)
246
246
if prefix_left != = :prefix
247
247
error (" $(prefix_left) is not a valid kwarg" )
@@ -257,7 +257,7 @@ function submodel(prefix_expr, expr, ctx=esc(:__model__.context))
257
257
# `prefix=...` => use it.
258
258
args_assign = getargs_assignment (expr)
259
259
return if args_assign === nothing
260
- ctx = prefix_submodel_context (prefix, ctx )
260
+ ctx = prefix_submodel_context (prefix, model )
261
261
quote
262
262
# Raise deprecation warning to let user know that we recommend using `left ~ to_submodel(model)`.
263
263
$ (Base. depwarn)(SUBMODEL_DEPWARN_MSG, Symbol (" @submodel" ))
@@ -271,7 +271,7 @@ function submodel(prefix_expr, expr, ctx=esc(:__model__.context))
271
271
L, R = args_assign
272
272
# Now that we have `L` and `R`, we can prefix automagically.
273
273
try
274
- ctx = prefix_submodel_context (prefix, L, ctx )
274
+ ctx = prefix_submodel_context (prefix, L, model )
275
275
catch e
276
276
error (
277
277
" failed to determine prefix from $(L) ; please specify prefix using the `@submodel prefix=\" your prefix\" ...` syntax" ,
0 commit comments