|
327 | 327 | # TODO(mhauru) Note that this could still generate an empty metadata object if none
|
328 | 328 | # of the lenses in `vns` are in `metadata`. Not sure if that's okay. Checking for
|
329 | 329 | # emptiness would make this type unstable again.
|
330 |
| - :((; $sym=subset(metadata.$sym, vns))) |
| 330 | + :((; ($sym)=subset(metadata.$sym, vns))) |
331 | 331 | else
|
332 | 332 | :(NamedTuple{}())
|
333 | 333 | end
|
@@ -708,8 +708,9 @@ findinds(vnv::VarNamedVector) = 1:length(vnv.varnames)
|
708 | 708 |
|
709 | 709 | Return a `NamedTuple` of the variables in `vi` grouped by symbol.
|
710 | 710 | """
|
711 |
| -all_varnames_grouped_by_symbol(vi::TypedVarInfo) = |
| 711 | +function all_varnames_grouped_by_symbol(vi::TypedVarInfo) |
712 | 712 | all_varnames_grouped_by_symbol(vi.metadata)
|
| 713 | +end |
713 | 714 |
|
714 | 715 | @generated function all_varnames_grouped_by_symbol(md::NamedTuple{names}) where {names}
|
715 | 716 | expr = Expr(:tuple)
|
@@ -981,25 +982,22 @@ end
|
981 | 982 | if !(f in vns_names)
|
982 | 983 | continue
|
983 | 984 | end
|
984 |
| - push!( |
985 |
| - expr.args, |
986 |
| - quote |
987 |
| - f_vns = vi.metadata.$f.vns |
988 |
| - f_vns = filter_subsumed(vns.$f, f_vns) |
989 |
| - if !isempty(f_vns) |
990 |
| - if !istrans(vi, f_vns[1]) |
991 |
| - # Iterate over all `f_vns` and transform |
992 |
| - for vn in f_vns |
993 |
| - f = internal_to_linked_internal_transform(vi, vn) |
994 |
| - _inner_transform!(vi, vn, f) |
995 |
| - settrans!!(vi, true, vn) |
996 |
| - end |
997 |
| - else |
998 |
| - @warn("[DynamicPPL] attempt to link a linked vi") |
| 985 | + push!(expr.args, quote |
| 986 | + f_vns = vi.metadata.$f.vns |
| 987 | + f_vns = filter_subsumed(vns.$f, f_vns) |
| 988 | + if !isempty(f_vns) |
| 989 | + if !istrans(vi, f_vns[1]) |
| 990 | + # Iterate over all `f_vns` and transform |
| 991 | + for vn in f_vns |
| 992 | + f = internal_to_linked_internal_transform(vi, vn) |
| 993 | + _inner_transform!(vi, vn, f) |
| 994 | + settrans!!(vi, true, vn) |
999 | 995 | end
|
| 996 | + else |
| 997 | + @warn("[DynamicPPL] attempt to link a linked vi") |
1000 | 998 | end
|
1001 |
| - end, |
1002 |
| - ) |
| 999 | + end |
| 1000 | + end) |
1003 | 1001 | end
|
1004 | 1002 | return expr
|
1005 | 1003 | end
|
@@ -1085,23 +1083,20 @@ end
|
1085 | 1083 | continue
|
1086 | 1084 | end
|
1087 | 1085 |
|
1088 |
| - push!( |
1089 |
| - expr.args, |
1090 |
| - quote |
1091 |
| - f_vns = vi.metadata.$f.vns |
1092 |
| - f_vns = filter_subsumed(vns.$f, f_vns) |
1093 |
| - if istrans(vi, f_vns[1]) |
1094 |
| - # Iterate over all `f_vns` and transform |
1095 |
| - for vn in f_vns |
1096 |
| - f = linked_internal_to_internal_transform(vi, vn) |
1097 |
| - _inner_transform!(vi, vn, f) |
1098 |
| - settrans!!(vi, false, vn) |
1099 |
| - end |
1100 |
| - else |
1101 |
| - @warn("[DynamicPPL] attempt to invlink an invlinked vi") |
| 1086 | + push!(expr.args, quote |
| 1087 | + f_vns = vi.metadata.$f.vns |
| 1088 | + f_vns = filter_subsumed(vns.$f, f_vns) |
| 1089 | + if istrans(vi, f_vns[1]) |
| 1090 | + # Iterate over all `f_vns` and transform |
| 1091 | + for vn in f_vns |
| 1092 | + f = linked_internal_to_internal_transform(vi, vn) |
| 1093 | + _inner_transform!(vi, vn, f) |
| 1094 | + settrans!!(vi, false, vn) |
1102 | 1095 | end
|
1103 |
| - end, |
1104 |
| - ) |
| 1096 | + else |
| 1097 | + @warn("[DynamicPPL] attempt to invlink an invlinked vi") |
| 1098 | + end |
| 1099 | + end) |
1105 | 1100 | end
|
1106 | 1101 | return expr
|
1107 | 1102 | end
|
@@ -1774,23 +1769,20 @@ end
|
1774 | 1769 | f_idcs = :(idcs.$f)
|
1775 | 1770 | f_orders = :(metadata.$f.orders)
|
1776 | 1771 | f_flags = :(metadata.$f.flags)
|
1777 |
| - push!( |
1778 |
| - expr.args, |
1779 |
| - quote |
1780 |
| - # Set the flag for variables with symbol `f` |
1781 |
| - if num_produce == 0 |
1782 |
| - for i in length($f_idcs):-1:1 |
1783 |
| - $f_flags["del"][$f_idcs[i]] = true |
1784 |
| - end |
1785 |
| - else |
1786 |
| - for i in 1:length($f_orders) |
1787 |
| - if i in $f_idcs && $f_orders[i] > num_produce |
1788 |
| - $f_flags["del"][i] = true |
1789 |
| - end |
| 1772 | + push!(expr.args, quote |
| 1773 | + # Set the flag for variables with symbol `f` |
| 1774 | + if num_produce == 0 |
| 1775 | + for i in length($f_idcs):-1:1 |
| 1776 | + $f_flags["del"][$f_idcs[i]] = true |
| 1777 | + end |
| 1778 | + else |
| 1779 | + for i in 1:length($f_orders) |
| 1780 | + if i in $f_idcs && $f_orders[i] > num_produce |
| 1781 | + $f_flags["del"][i] = true |
1790 | 1782 | end
|
1791 | 1783 | end
|
1792 |
| - end, |
1793 |
| - ) |
| 1784 | + end |
| 1785 | + end) |
1794 | 1786 | end
|
1795 | 1787 | return expr
|
1796 | 1788 | end
|
|
0 commit comments