Skip to content

Commit 3e79363

Browse files
fixup! refactor: concretely type some utility functions
1 parent db3a50c commit 3e79363

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

src/utils.jl

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,21 @@ end
301301
function collect_defaults!(defs::SymmapT, vars::Vector{SymbolicT})
302302
for v in vars
303303
isconst(v) && continue
304-
if haskey(defs, v) || (def = Symbolics.getdefaultval(v, nothing)) === nothing
304+
haskey(defs, v) && continue
305+
def = Symbolics.getdefaultval(v, nothing)
306+
if def !== nothing
307+
defs[v] = SU.Const{VartypeT}(def)
305308
continue
306309
end
307-
defs[v] = SU.Const{VartypeT}(def)
310+
Moshi.Match.@match v begin
311+
BSImpl.Term(; f, args) && if f === getindex end => begin
312+
haskey(defs, args[1]) && continue
313+
def = Symbolics.getdefaultval(args[1], nothing)
314+
def === nothing && continue
315+
defs[args[1]] = def
316+
end
317+
_ => nothing
318+
end
308319
end
309320
return defs
310321
end
@@ -313,10 +324,21 @@ function collect_guesses!(guesses::SymmapT, vars::Vector{SymbolicT})
313324
for v in vars
314325
isconst(v) && continue
315326
symbolic_type(v) == NotSymbolic() && continue
316-
if haskey(guesses, v) || (def = getguess(v)) === nothing
327+
haskey(guesses, v) && continue
328+
def = getguess(v)
329+
if def !== nothing
330+
guesses[v] = SU.Const{VartypeT}(def)
317331
continue
318332
end
319-
guesses[v] = SU.Const{VartypeT}(def)
333+
Moshi.Match.@match v begin
334+
BSImpl.Term(; f, args) && if f === getindex end => begin
335+
haskey(guesses, args[1]) && continue
336+
def = Symbolics.getdefaultval(args[1], nothing)
337+
def === nothing && continue
338+
guesses[args[1]] = def
339+
end
340+
_ => nothing
341+
end
320342
end
321343
return guesses
322344
end

0 commit comments

Comments
 (0)