File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -811,6 +811,18 @@ function invalidate_cache!(sys::AbstractSystem)
811811 return sys
812812end
813813
814+ # `::MetadataT` but that is defined later
815+ function refreshed_metadata (meta:: Base.ImmutableDict )
816+ newmeta = MetadataT ()
817+ for (k, v) in meta
818+ if k === MutableCacheKey
819+ v = MutableCacheT ()
820+ end
821+ newmeta = Base. ImmutableDict (newmeta, k => v)
822+ end
823+ return newmeta
824+ end
825+
814826function Setfield. get (obj:: AbstractSystem , :: Setfield.PropertyLens{field} ) where {field}
815827 getfield (obj, field)
816828end
819831 args = map (fieldnames (obj)) do fn
820832 if fn in fieldnames (patch)
821833 :(patch.$ fn)
834+ elseif fn == :metadata
835+ :($ refreshed_metadata (getfield (obj, $ (Meta. quot (fn)))))
822836 else
823837 :(getfield (obj, $ (Meta. quot (fn))))
824838 end
You can’t perform that action at this time.
0 commit comments