Skip to content

Commit 95390c0

Browse files
some inference fixes
1 parent c5e1c1c commit 95390c0

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/solve.jl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ NO_TSPAN_PROBS = Union{AbstractLinearProblem, AbstractNonlinearProblem,
66
AbstractQuadratureProblem,
77
AbstractSteadyStateProblem,AbstractJumpProblem}
88

9+
has_kwargs(_prob::DEProblem) = has_kwargs(typeof(_prob))
10+
Base.@pure has_kwargs(::Type{T}) where T = :kwargs fieldnames(T)
11+
912
function init_call(_prob,args...;kwargs...)
10-
if :kwargs propertynames(_prob)
13+
if has_kwargs(_prob)
1114
__init(_prob,args...;_prob.kwargs...,kwargs...)
1215
else
1316
__init(_prob,args...;kwargs...)
@@ -34,7 +37,7 @@ function init(prob::DEProblem,args...;kwargs...)
3437
end
3538

3639
function solve_call(_prob,args...;merge_callbacks = true, kwargs...)
37-
if :kwargs propertynames(_prob)
40+
if has_kwargs(_prob)
3841
if merge_callbacks && haskey(_prob.kwargs,:callback) && haskey(kwargs, :callback)
3942
kwargs_temp = NamedTuple{Base.diff_names(Base._nt_names(
4043
values(kwargs)), (:callback,))}(values(kwargs))
@@ -44,8 +47,13 @@ function solve_call(_prob,args...;merge_callbacks = true, kwargs...)
4447
kwargs = merge(values(_prob.kwargs), kwargs)
4548
end
4649

47-
logger = get(kwargs, :progress, false) ? default_logger(Logging.current_logger()) : nothing
48-
maybe_with_logger(logger) do
50+
progress = get(kwargs, :progress, false)
51+
if progress
52+
logger = default_logger(Logging.current_logger())
53+
maybe_with_logger(logger) do
54+
__solve(_prob,args...; kwargs...)
55+
end
56+
else
4957
__solve(_prob,args...; kwargs...)
5058
end
5159
end

0 commit comments

Comments
 (0)