@@ -767,6 +767,8 @@ function (::OperatorIsAtomic{O})(ex::SymbolicT) where {O}
767767 end
768768end
769769
770+ __DEBUG_CV:: Bool = false
771+
770772"""
771773 $(TYPEDSIGNATURES)
772774
@@ -782,11 +784,13 @@ can be checked using `check_scope_depth`.
782784This function should return `nothing`.
783785"""
784786function collect_vars!(unknowns:: OrderedSet{SymbolicT} , parameters:: OrderedSet{SymbolicT} , expr:: SymbolicT , iv:: Union{SymbolicT, Nothing} , :: Type{op} = Symbolics. Operator; depth = 0 ) where {op}
787+ __DEBUG_CV && @info " collect_vars!" expr
785788 Moshi. Match. @match expr begin
786789 BSImpl. Const() => return
787790 BSImpl. Sym() => return collect_var!(unknowns, parameters, expr, iv; depth)
788791 _ => nothing
789792 end
793+ __DEBUG_CV && @info " No early exit"
790794 vars = OrderedSet{SymbolicT}()
791795 SU. search_variables!(vars, expr; is_atomic = OperatorIsAtomic{op}())
792796 for var in vars
@@ -799,6 +803,7 @@ function collect_vars!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{S
799803 _ => collect_var!(unknowns, parameters, var, iv; depth)
800804 end
801805 end
806+ __DEBUG_CV && @info " Exit collect_vars!" expr
802807 return nothing
803808end
804809
846851function collect_vars!(
847852 unknowns:: OrderedSet{SymbolicT} , parameters:: OrderedSet{SymbolicT} , expr, iv:: Union{SymbolicT, Nothing} , :: Type{op} = Symbolics. Operator; depth = 0
848853 ) where {op}
854+ __DEBUG_CV && @info " Fallback" expr
849855 return nothing
850856end
851857
@@ -857,6 +863,7 @@ Add `var` to `unknowns` or `parameters` appropriately, and search through any ex
857863in known metadata of `var` using `collect_vars!`.
858864"""
859865function collect_var!(unknowns:: OrderedSet{SymbolicT} , parameters:: OrderedSet{SymbolicT} , var:: SymbolicT , iv:: Union{SymbolicT, Nothing} ; depth = 0 )
866+ __DEBUG_CV && @info " Enter" var
860867 isequal(var, iv) && return nothing
861868 if Symbolics. iswrapped(var)
862869 error(
@@ -872,7 +879,10 @@ function collect_var!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{Sy
872879 )
873880 end
874881 arr, isarr = split_indexed_var(var)
875- check_scope_depth(getmetadata(arr, SymScope, LocalScope()):: AllScopes , depth) || return nothing
882+ if ! check_scope_depth(getmetadata(arr, SymScope, LocalScope()):: AllScopes , depth)
883+ __DEBUG_CV && @info " Exit scope" var
884+ return nothing
885+ end
876886 var = setmetadata(var, SymScope, LocalScope())
877887 if iscalledparameter(var)
878888 callable = getcalledparameter(var)
@@ -885,6 +895,7 @@ function collect_var!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{Sy
885895 end
886896 # Add also any parameters that appear only as defaults in the var
887897 if hasdefault(var) && (def = getdefault(var)) != = missing
898+ __DEBUG_CV && @info " Found default" def
888899 if def isa SymbolicT
889900 collect_vars!(unknowns, parameters, def, iv)
890901 elseif def isa Num
0 commit comments