Skip to content

Commit 50bd986

Browse files
committed
fix everything but doctests i think
1 parent 98fa91d commit 50bd986

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/submodel_macro.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -207,41 +207,41 @@ ERROR: LoadError: cannot automatically prefix with no left-hand side
207207
resolved at runtime.
208208
"""
209209
macro submodel(prefix_expr, expr)
210-
return submodel(prefix_expr, expr, esc(:__model__.context))
210+
return submodel(prefix_expr, expr, esc(:__model__))
211211
end
212212

213213
# 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)
216216
end
217217

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)
220220
end
221221

222222
# 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)
225225
# 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))
227227
end
228228

229-
function prefix_submodel_context(prefix::Union{AbstractString,Symbol}, ctx)
229+
function prefix_submodel_context(prefix::Union{AbstractString,Symbol}, model)
230230
# 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))
232232
end
233233

234-
function prefix_submodel_context(prefix::Bool, ctx)
234+
function prefix_submodel_context(prefix::Bool, model)
235235
if prefix
236236
error("cannot automatically prefix with no left-hand side")
237237
end
238238

239-
return ctx
239+
return :($model.context)
240240
end
241241

242242
const SUBMODEL_DEPWARN_MSG = "`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax."
243243

244-
function submodel(prefix_expr, expr, ctx=esc(:__model__.context))
244+
function submodel(prefix_expr, expr, model=esc(:__model__))
245245
prefix_left, prefix = getargs_assignment(prefix_expr)
246246
if prefix_left !== :prefix
247247
error("$(prefix_left) is not a valid kwarg")
@@ -257,7 +257,7 @@ function submodel(prefix_expr, expr, ctx=esc(:__model__.context))
257257
# `prefix=...` => use it.
258258
args_assign = getargs_assignment(expr)
259259
return if args_assign === nothing
260-
ctx = prefix_submodel_context(prefix, ctx)
260+
ctx = prefix_submodel_context(prefix, model)
261261
quote
262262
# Raise deprecation warning to let user know that we recommend using `left ~ to_submodel(model)`.
263263
$(Base.depwarn)(SUBMODEL_DEPWARN_MSG, Symbol("@submodel"))
@@ -271,7 +271,7 @@ function submodel(prefix_expr, expr, ctx=esc(:__model__.context))
271271
L, R = args_assign
272272
# Now that we have `L` and `R`, we can prefix automagically.
273273
try
274-
ctx = prefix_submodel_context(prefix, L, ctx)
274+
ctx = prefix_submodel_context(prefix, L, model)
275275
catch e
276276
error(
277277
"failed to determine prefix from $(L); please specify prefix using the `@submodel prefix=\"your prefix\" ...` syntax",

0 commit comments

Comments
 (0)