597597"""
598598function parent (vn:: VarName )
599599 p = parent (getoptic (vn))
600- return p === nothing ? VarName (vn, identity) : VarName (vn, p)
600+ return p === nothing ? VarName {getsym (vn)} ( identity) : VarName {getsym (vn)} ( p)
601601end
602602
603603"""
@@ -712,7 +712,7 @@ ERROR: Could not find x.a[2] in x.a[1]
712712function remove_parent_optic (vn_parent:: VarName{sym} , vn_child:: VarName{sym} ) where {sym}
713713 _, child, issuccess = splitoptic (getoptic (vn_child)) do optic
714714 o = optic === nothing ? identity : optic
715- VarName (vn_child, o) == vn_parent
715+ o == getoptic ( vn_parent)
716716 end
717717
718718 issuccess || error (" Could not find $vn_parent in $vn_child " )
@@ -907,7 +907,7 @@ function hasvalue(vals::AbstractDict, vn::VarName)
907907 # If `issuccess` is `true`, we found such a split, and hence `vn` is present.
908908 parent, child, issuccess = splitoptic (getoptic (vn)) do optic
909909 o = optic === nothing ? identity : optic
910- haskey (vals, VarName (vn, o))
910+ haskey (vals, VarName {getsym (vn)} ( o))
911911 end
912912 # When combined with `VarInfo`, `nothing` is equivalent to `identity`.
913913 keyoptic = parent === nothing ? identity : parent
@@ -916,7 +916,7 @@ function hasvalue(vals::AbstractDict, vn::VarName)
916916 issuccess || return false
917917
918918 # At this point we just need to check that we `canview` the value.
919- value = vals[VarName (vn, keyoptic)]
919+ value = vals[VarName {getsym (vn)} ( keyoptic)]
920920
921921 return canview (child, value)
922922end
@@ -936,7 +936,7 @@ function nested_getindex(values::AbstractDict, vn::VarName)
936936 # Split the optic into the key / `parent` and the extraction optic / `child`.
937937 parent, child, issuccess = splitoptic (getoptic (vn)) do optic
938938 o = optic === nothing ? identity : optic
939- haskey (values, VarName (vn, o))
939+ haskey (values, VarName {getsym (vn)} ( o))
940940 end
941941 # When combined with `VarInfo`, `nothing` is equivalent to `identity`.
942942 keyoptic = parent === nothing ? identity : parent
@@ -949,7 +949,7 @@ function nested_getindex(values::AbstractDict, vn::VarName)
949949
950950 # TODO : Should we also check that we `canview` the extracted `value`
951951 # rather than just let it fail upon `get` call?
952- value = values[VarName (vn, keyoptic)]
952+ value = values[VarName {getsym (vn)} ( keyoptic)]
953953 return child (value)
954954end
955955
@@ -1067,20 +1067,21 @@ x.z[2][1]
10671067varname_leaves (vn:: VarName , :: Real ) = [vn]
10681068function varname_leaves (vn:: VarName , val:: AbstractArray{<:Union{Real,Missing}} )
10691069 return (
1070- VarName (vn, Accessors. IndexLens (Tuple (I)) ∘ getoptic (vn)) for
1070+ VarName {getsym (vn)} ( Accessors. IndexLens (Tuple (I)) ∘ getoptic (vn)) for
10711071 I in CartesianIndices (val)
10721072 )
10731073end
10741074function varname_leaves (vn:: VarName , val:: AbstractArray )
10751075 return Iterators. flatten (
1076- varname_leaves (VarName (vn, Accessors. IndexLens (Tuple (I)) ∘ getoptic (vn)), val[I])
1077- for I in CartesianIndices (val)
1076+ varname_leaves (
1077+ VarName {getsym(vn)} (Accessors. IndexLens (Tuple (I)) ∘ getoptic (vn)), val[I]
1078+ ) for I in CartesianIndices (val)
10781079 )
10791080end
10801081function varname_leaves (vn:: VarName , val:: NamedTuple )
1081- iter = Iterators. map (keys (val)) do sym
1082- optic = Accessors. PropertyLens {sym } ()
1083- varname_leaves (VarName (vn, optic ∘ getoptic (vn)), optic (val))
1082+ iter = Iterators. map (keys (val)) do k
1083+ optic = Accessors. PropertyLens {k } ()
1084+ varname_leaves (VarName {getsym (vn)} ( optic ∘ getoptic (vn)), optic (val))
10841085 end
10851086 return Iterators. flatten (iter)
10861087end
@@ -1110,7 +1111,7 @@ julia> foreach(println, varname_and_value_leaves(@varname(x), x))
11101111(x.z[2][1], 3.0)
11111112```
11121113
1113- There are also some special handling for certain types:
1114+ There is also some special handling for certain types:
11141115
11151116```jldoctest varname-and-value-leaves
11161117julia> using LinearAlgebra
@@ -1229,7 +1230,7 @@ function varname_and_value_leaves_inner(
12291230)
12301231 return (
12311232 Leaf (
1232- VarName (vn, DynamicPPL . Accessors. IndexLens (Tuple (I)) ∘ DynamicPPL . getoptic (vn)),
1233+ VarName {getsym (vn)} ( Accessors. IndexLens (Tuple (I)) ∘ AbstractPPL . getoptic (vn)),
12331234 val[I],
12341235 ) for I in CartesianIndices (val)
12351236 )
@@ -1238,14 +1239,14 @@ end
12381239function varname_and_value_leaves_inner (vn:: VarName , val:: AbstractArray )
12391240 return Iterators. flatten (
12401241 varname_and_value_leaves_inner (
1241- VarName (vn, DynamicPPL . Accessors. IndexLens (Tuple (I)) ∘ DynamicPPL . getoptic (vn)),
1242+ VarName {getsym (vn)} ( Accessors. IndexLens (Tuple (I)) ∘ AbstractPPL . getoptic (vn)),
12421243 val[I],
12431244 ) for I in CartesianIndices (val)
12441245 )
12451246end
1246- function varname_and_value_leaves_inner (vn:: DynamicPPL. VarName , val:: NamedTuple )
1247- iter = Iterators. map (keys (val)) do sym
1248- optic = DynamicPPL . Accessors. PropertyLens {sym } ()
1247+ function varname_and_value_leaves_inner (vn:: VarName , val:: NamedTuple )
1248+ iter = Iterators. map (keys (val)) do k
1249+ optic = Accessors. PropertyLens {k } ()
12491250 varname_and_value_leaves_inner (
12501251 VarName {getsym(vn)} (optic ∘ getoptic (vn)), optic (val)
12511252 )
@@ -1264,20 +1265,14 @@ function varname_and_value_leaves_inner(vn::VarName, x::Cholesky)
12641265end
12651266function varname_and_value_leaves_inner (vn:: VarName , x:: LinearAlgebra.LowerTriangular )
12661267 return (
1267- Leaf (
1268- VarName (vn, DynamicPPL. Accessors. IndexLens (Tuple (I)) ∘ DynamicPPL. getoptic (vn)),
1269- x[I],
1270- )
1268+ Leaf (VarName {getsym(vn)} (Accessors. IndexLens (Tuple (I)) ∘ getoptic (vn)), x[I])
12711269 # Iteration over the lower-triangular indices.
12721270 for I in CartesianIndices (x) if I[1 ] >= I[2 ]
12731271 )
12741272end
12751273function varname_and_value_leaves_inner (vn:: VarName , x:: LinearAlgebra.UpperTriangular )
12761274 return (
1277- Leaf (
1278- VarName (vn, DynamicPPL. Accessors. IndexLens (Tuple (I)) ∘ DynamicPPL. getoptic (vn)),
1279- x[I],
1280- )
1275+ Leaf (VarName {getsym(vn)} (Accessors. IndexLens (Tuple (I)) ∘ getoptic (vn)), x[I])
12811276 # Iteration over the upper-triangular indices.
12821277 for I in CartesianIndices (x) if I[1 ] <= I[2 ]
12831278 )
0 commit comments