@@ -53,7 +53,7 @@ function fold(t)
5353 # evaluate it
5454 return operation (t)(tt... )
5555 else
56- return similarterm (t , operation (t), tt)
56+ return maketerm ( typeof (t) , operation (t), tt, symtype (t), metadata (t) )
5757 end
5858 else
5959 return t
@@ -147,19 +147,19 @@ function flatten_term(⋆, x)
147147 push! (flattened_args, t)
148148 end
149149 end
150- similarterm (x , ⋆ , flattened_args)
150+ maketerm ( typeof (x) , ⋆ , flattened_args, symtype (x), metadata (x) )
151151end
152152
153153function sort_args (f, t)
154154 args = arguments (t)
155155 if length (args) < 2
156- return similarterm (t , f, args)
156+ return maketerm ( typeof (t) , f, args, symtype (t), metadata (t) )
157157 elseif length (args) == 2
158158 x, y = args
159- return similarterm (t , f, x < ₑ y ? [x,y] : [y,x])
159+ return maketerm ( typeof (t) , f, x < ₑ y ? [x,y] : [y,x], symtype (t), metadata (t) )
160160 end
161161 args = args isa Tuple ? [args... ] : args
162- similarterm (t , f, sort (args, lt= < ₑ))
162+ maketerm ( typeof (t) , f, sort (args, lt= < ₑ), symtype (t), metadata (t ))
163163end
164164
165165# Linked List interface
@@ -225,7 +225,7 @@ macro matchable(expr)
225225 SymbolicUtils. arguments (x:: $name ) = getfield .((x,), ($ (QuoteNode .(fields)... ),))
226226 SymbolicUtils. children (x:: $name ) = [SymbolicUtils. operation (x); SymbolicUtils. children (x)]
227227 Base. length (x:: $name ) = $ (length (fields) + 1 )
228- SymbolicUtils. similarterm (x:: $name , f, args, type; kw ... ) = f (args... )
228+ SymbolicUtils. maketerm (x:: $name , f, args, type, metadata ) = f (args... )
229229 end |> esc
230230end
231231
0 commit comments