591591function Sym {T} (name:: Symbol ; metadata = NO_METADATA, kw... ) where {T}
592592 s = Sym {T} (; name, kw... )
593593 bsi = BasicSymbolicImpl (s)
594- BasicSymbolic (bsi, metadata)
594+ mdi = MetadataImpl (metadata, Vector ())
595+ BasicSymbolic (bsi, mdi)
595596end
596597
597598function Term {T} (f, args; metadata = NO_METADATA, kw... ) where T
@@ -601,7 +602,8 @@ function Term{T}(f, args; metadata = NO_METADATA, kw...) where T
601602
602603 s = Term {T} (;f= f, arguments= args, hash= Ref (UInt (0 )), hash2= Ref (UInt (0 )), kw... )
603604 bsi = BasicSymbolicImpl (s)
604- BasicSymbolic (bsi, metadata)
605+ mdi = MetadataImpl (metadata, getmetadata .(args))
606+ BasicSymbolic (bsi, mdi)
605607end
606608
607609function Term (f, args; metadata= NO_METADATA)
@@ -623,7 +625,8 @@ function Add(::Type{T}, coeff, dict; metadata=NO_METADATA, kw...) where T
623625
624626 s = Add {T} (; coeff, dict, hash= Ref (UInt (0 )), hash2= Ref (UInt (0 )), arguments= [], issorted= RefValue (false ), kw... )
625627 bsi = BasicSymbolicImpl (s)
626- BasicSymbolic (bsi, metadata)
628+ mdi = MetadataImpl (metadata, getmetadata .(arguments (s)))
629+ BasicSymbolic (bsi, mdi)
627630end
628631
629632function Mul (T, a, b; metadata= NO_METADATA, kw... )
@@ -640,7 +643,8 @@ function Mul(T, a, b; metadata=NO_METADATA, kw...)
640643 dict = b
641644 s = Mul {T} (; coeff, dict, hash= Ref (UInt (0 )), hash2= Ref (UInt (0 )), arguments= [], issorted= RefValue (false ), kw... )
642645 bsi = BasicSymbolicImpl (s)
643- BasicSymbolic (bsi, metadata)
646+ mdi = MetadataImpl (metadata, getmetadata .(arguments (s)))
647+ BasicSymbolic (bsi, mdi)
644648 end
645649end
646650
@@ -707,7 +711,8 @@ function Div{T}(n, d, simplified=false; metadata=NO_METADATA, kwargs...) where {
707711
708712 s = Div {T} (; num= n, den= d, simplified, arguments= [])
709713 bsi = BasicSymbolicImpl (s)
710- BasicSymbolic (bsi, metadata)
714+ mdi = MetadataImpl (metadata, getmetadata .(arguments (s)))
715+ BasicSymbolic (bsi, mdi)
711716end
712717
713718function Div (n,d, simplified= false ; kw... )
@@ -726,7 +731,8 @@ function Pow{T}(a, b; metadata=NO_METADATA, kwargs...) where {T}
726731 _isone (b) && return a
727732 s = Pow {T} (; base= a, exp= b, arguments= [])
728733 bsi = BasicSymbolicImpl (s)
729- BasicSymbolic (bsi, metadata)
734+ mdi = MetadataImpl (metadata, getmetadata .(arguments (s)))
735+ BasicSymbolic (bsi, mdi)
730736end
731737
732738function Pow (a, b; metadata = NO_METADATA, kwargs... )
0 commit comments