@@ -173,7 +173,6 @@ function build_model_info(input_expr)
173
173
174
174
model_info = Dict (
175
175
:name => modeldef[:name ],
176
- :model_tag => gensym (modeldef[:name ]),
177
176
:main_body => modeldef[:body ],
178
177
:arg_syms => arg_syms,
179
178
:args_nt => args_nt,
@@ -431,8 +430,6 @@ function build_output(model_info)
431
430
whereparams = model_info[:whereparams ]
432
431
# Model generator name
433
432
model_gen = model_info[:name ]
434
- # Tag used for the model type
435
- model_tag = model_info[:model_tag ]
436
433
# Main body of the model
437
434
main_body = model_info[:main_body ]
438
435
@@ -454,13 +451,22 @@ function build_output(model_info)
454
451
end )
455
452
end
456
453
457
- model_type = :(DynamicPPL. Model{$ (QuoteNode (model_tag))})
458
- kw_form = isempty (args) ? () : (:($ model_type (;$ (args... )) = $ model_type ($ (arg_syms... ))),)
454
+ kw_form = isempty (args) ? () : (:($ model_gen (;$ (args... )) = $ model_gen ($ (arg_syms... ))),)
459
455
missings = gensym (:missings )
460
456
args_tuple = gensym (:args_tuple )
461
457
462
458
ex = quote
463
- function ($ model:: $model_type )(
459
+ function $model_gen ($ (args... ))
460
+ $ args_tuple = $ args_nt
461
+ $ missings = DynamicPPL. getmissing ($ args_tuple)
462
+ return DynamicPPL. Model{typeof ($ model_gen),
463
+ typeof ($ args_tuple),
464
+ typeof ($ missings)}($ args_tuple, $ missings)
465
+ end
466
+
467
+ $ (kw_form... )
468
+
469
+ function ($ model:: DynamicPPL.Model{typeof($model_gen)} )(
464
470
$ vi:: DynamicPPL.VarInfo ,
465
471
$ sampler:: DynamicPPL.AbstractSampler ,
466
472
$ ctx:: DynamicPPL.AbstractContext ,
@@ -469,20 +475,8 @@ function build_output(model_info)
469
475
DynamicPPL. resetlogp! ($ vi)
470
476
$ main_body
471
477
end
472
-
473
- DynamicPPL. getdefaults (:: Type{$model_type} ) = $ defaults_nt
474
478
475
- function $model_type ($ (args... ))
476
- $ args_tuple = $ args_nt
477
- $ missings = DynamicPPL. getmissing ($ args_tuple)
478
- return DynamicPPL. Model{$ (QuoteNode (model_tag)),
479
- typeof ($ args_tuple),
480
- typeof ($ missings)}($ args_tuple, $ missings)
481
- end
482
-
483
- $ (kw_form... )
484
-
485
- $ model_gen = $ model_type
479
+ DynamicPPL. getdefaults (:: typeof ($ model_gen)) = $ defaults_nt
486
480
end
487
481
488
482
return esc (ex)
0 commit comments