@@ -6,8 +6,11 @@ NO_TSPAN_PROBS = Union{AbstractLinearProblem, AbstractNonlinearProblem,
6
6
AbstractQuadratureProblem,
7
7
AbstractSteadyStateProblem,AbstractJumpProblem}
8
8
9
+ has_kwargs (_prob:: DEProblem ) = has_kwargs (typeof (_prob))
10
+ Base. @pure has_kwargs (:: Type{T} ) where T = :kwargs ∈ fieldnames (T)
11
+
9
12
function init_call (_prob,args... ;kwargs... )
10
- if :kwargs ∈ propertynames (_prob)
13
+ if has_kwargs (_prob)
11
14
__init (_prob,args... ;_prob. kwargs... ,kwargs... )
12
15
else
13
16
__init (_prob,args... ;kwargs... )
@@ -34,7 +37,7 @@ function init(prob::DEProblem,args...;kwargs...)
34
37
end
35
38
36
39
function solve_call (_prob,args... ;merge_callbacks = true , kwargs... )
37
- if :kwargs ∈ propertynames (_prob)
40
+ if has_kwargs (_prob)
38
41
if merge_callbacks && haskey (_prob. kwargs,:callback ) && haskey (kwargs, :callback )
39
42
kwargs_temp = NamedTuple{Base. diff_names (Base. _nt_names (
40
43
values (kwargs)), (:callback ,))}(values (kwargs))
@@ -44,8 +47,13 @@ function solve_call(_prob,args...;merge_callbacks = true, kwargs...)
44
47
kwargs = merge (values (_prob. kwargs), kwargs)
45
48
end
46
49
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
49
57
__solve (_prob,args... ; kwargs... )
50
58
end
51
59
end
0 commit comments