@@ -16,20 +16,12 @@ struct AllObserved
1616end
1717
1818Base. @pure __parameterless_type (T) = Base. typename (T). wrapper
19- const _Symbolics_Operation = Symbol (" Symbolics.Operation" )
20- const _Symbolics_Variable = Symbol (" Symbolics.Variable" )
21- const _Symbolics_Sym = Symbol (" Symbolics.Sym" )
22- const _Symbolics_Num = Symbol (" Symbolics.Num" )
23- const _Symbolics_Term = Symbol (" Symbolics.Term" )
24- issymbollike (x:: Symbol ) = true
25- issymbollike (x:: AllObserved ) = true
26- function issymbollike (x)
27- s = Symbol (__parameterless_type (typeof (x)))
28- s === :Operation || s === _Symbolics_Operation ||
29- s === :Variable || s === _Symbolics_Variable ||
30- s === :Sym || s === _Symbolics_Sym ||
31- s === :Num || s === _Symbolics_Num ||
32- s === :Term || s === _Symbolics_Term
19+
20+ @generated function issymbollike (x)
21+ x <: Union{Symbol,AllObserved} && return true
22+ ss = [" Operation" , " Variable" , " Sym" , " Num" , " Term" ]
23+ s = string (Symbol (__parameterless_type (x)))
24+ any (x-> occursin (x, s), ss)
3325end
3426
3527Base. Array (VA:: AbstractVectorOfArray{T,N,A} ) where {T,N,A <: AbstractVector{<:AbstractVector} } = reduce (hcat,VA. u)
0 commit comments