@@ -55,7 +55,7 @@ function probtype(ntl::NamedTuple{namesl}, ntr::NamedTuple{namesr}) where {names
55
55
defaults = getdefaults (modelgen)
56
56
valid_arg (arg) = isdefined (ntl, arg) || isdefined (ntr, arg) ||
57
57
isdefined (defaults, arg) && getfield (defaults, arg) != = missing
58
- @assert all (valid_arg, getargtypes (modelgen))
58
+ @assert all (valid_arg, getargnames (modelgen))
59
59
return Val (:likelihood ), modelgen, vi
60
60
else
61
61
@assert isdefined (ntr, :model )
@@ -76,9 +76,9 @@ function probtype(
76
76
modelgen,
77
77
defaults:: NamedTuple{defs}
78
78
) where {namesl, namesr, defs}
79
- args = getargtypes (modelgen)
79
+ argnames = getargnames (modelgen)
80
80
prior_rhs = all (n -> n in (:model , :varinfo ) ||
81
- n in args && getfield (ntr, n) != = missing , namesr)
81
+ n in argnames && getfield (ntr, n) != = missing , namesr)
82
82
function get_arg (arg)
83
83
if arg in namesl
84
84
return getfield (ntl, arg)
@@ -94,7 +94,7 @@ function probtype(
94
94
a = get_arg (arg)
95
95
return a != = nothing && a != = missing
96
96
end
97
- valid_args = all (valid_arg, args )
97
+ valid_args = all (valid_arg, argnames )
98
98
99
99
# Uses the default values for model arguments not provided.
100
100
# If no default value exists, use `nothing`.
@@ -105,9 +105,9 @@ function probtype(
105
105
elseif valid_args
106
106
return Val (:likelihood )
107
107
else
108
- for arg in args
109
- if ! valid_arg (args )
110
- throw (ArgumentError (missing_arg_error_msg (arg , get_arg (arg ))))
108
+ for argname in argnames
109
+ if ! valid_arg (argname )
110
+ throw (ArgumentError (missing_arg_error_msg (argname , get_arg (argname ))))
111
111
end
112
112
end
113
113
end
@@ -134,7 +134,10 @@ function logprior(
134
134
# All `observe` and `dot_observe` calls are no-op in the PriorContext
135
135
136
136
# When all of model args are on the lhs of |, this is also equal to the logjoint.
137
- args, missing_vars = get_prior_model_args (left, right, Val {getargtypes(modelgen)} (), getdefaults (modelgen))
137
+ args, missing_vars = get_prior_model_args (left,
138
+ right,
139
+ Val {getargnames(modelgen)} (),
140
+ getdefaults (modelgen))
138
141
model = Model {typeof(modelgen)} (args, missing_vars)
139
142
vi = _vi === nothing ? VarInfo (deepcopy (model), PriorContext ()) : _vi
140
143
foreach (keys (vi. metadata)) do n
@@ -146,23 +149,23 @@ end
146
149
@generated function get_prior_model_args (
147
150
left:: NamedTuple{namesl} ,
148
151
right:: NamedTuple{namesr} ,
149
- :: Val{args } ,
152
+ _args :: Val{argnames } ,
150
153
defaults:: NamedTuple{default_args}
151
- ) where {namesl, namesr, args , default_args}
154
+ ) where {namesl, namesr, argnames , default_args}
152
155
exprs = []
153
156
missing_args = []
154
157
warn_expr = Expr (:block )
155
- foreach (args ) do arg
156
- if arg in namesl
157
- push! (exprs, :($ arg = deepcopy (left.$ arg )))
158
- push! (missing_args, arg )
159
- elseif arg in namesr
160
- push! (exprs, :($ arg = right.$ arg ))
161
- elseif arg in default_args
162
- push! (exprs, :($ arg = defaults.$ arg ))
158
+ foreach (argnames ) do argname
159
+ if argname in namesl
160
+ push! (exprs, :($ argname = deepcopy (left.$ argname )))
161
+ push! (missing_args, argname )
162
+ elseif argname in namesr
163
+ push! (exprs, :($ argname = right.$ argname ))
164
+ elseif argname in default_args
165
+ push! (exprs, :($ argname = defaults.$ argname ))
163
166
else
164
- push! (warn_expr. args, :(@warn (warn_msg ($ (QuoteNode (arg ))))))
165
- push! (exprs, :($ arg = nothing ))
167
+ push! (warn_expr. args, :(@warn (warn_msg ($ (QuoteNode (argname ))))))
168
+ push! (exprs, :($ argname = nothing ))
166
169
end
167
170
end
168
171
missing_vars = :(Val {($missing_args...,)} ())
@@ -188,7 +191,10 @@ function loglikelihood(
188
191
_vi:: Union{Nothing, VarInfo} ,
189
192
)
190
193
# Pass namesl to model constructor, remaining args are missing
191
- args, missing_vars = get_like_model_args (left, right, Val {getargtypes(modelgen)} (), getdefaults (modelgen))
194
+ args, missing_vars = get_like_model_args (left,
195
+ right,
196
+ Val {getargnames(modelgen)} (),
197
+ getdefaults (modelgen))
192
198
model = Model {typeof(modelgen)} (args, missing_vars)
193
199
vi = _vi === nothing ? VarInfo (deepcopy (model)) : _vi
194
200
if isdefined (right, :chain )
@@ -212,19 +218,19 @@ end
212
218
@generated function get_like_model_args (
213
219
left:: NamedTuple{namesl} ,
214
220
right:: NamedTuple{namesr} ,
215
- :: Val{args } ,
221
+ _args :: Val{argnames } ,
216
222
defaults:: NamedTuple{default_args} ,
217
- ) where {namesl, namesr, args , default_args}
223
+ ) where {namesl, namesr, argnames , default_args}
218
224
exprs = []
219
225
missing_args = []
220
- foreach (args ) do arg
221
- if arg in namesl
222
- push! (exprs, :($ arg = left.$ arg ))
223
- elseif arg in namesr
224
- push! (exprs, :($ arg = right.$ arg ))
225
- push! (missing_args, arg )
226
- elseif arg in default_args
227
- push! (exprs, :($ arg = defaults.$ arg ))
226
+ foreach (argnames ) do argname
227
+ if argname in namesl
228
+ push! (exprs, :($ argname = left.$ argname ))
229
+ elseif argname in namesr
230
+ push! (exprs, :($ argname = right.$ argname ))
231
+ push! (missing_args, argname )
232
+ elseif argname in default_args
233
+ push! (exprs, :($ argname = defaults.$ argname ))
228
234
else
229
235
throw (" This point should not be reached. Please open an issue in the DynamicPPL.jl repository." )
230
236
end
0 commit comments