Skip to content

Commit a955c01

Browse files
Merge pull request #1104 from oscardssmith/os/improve-hasx-defs
make hasx foldable
2 parents 571f92a + ee65e46 commit a955c01

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

src/scimlfunctions.jl

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4938,47 +4938,47 @@ end
49384938
########## Existence Functions
49394939

49404940
# Check that field/property exists (may be nothing)
4941-
__has_jac(f) = isdefined(f, :jac)
4942-
__has_jvp(f) = isdefined(f, :jvp)
4943-
__has_vjp(f) = isdefined(f, :vjp)
4944-
__has_tgrad(f) = isdefined(f, :tgrad)
4945-
__has_Wfact(f) = isdefined(f, :Wfact)
4946-
__has_Wfact_t(f) = isdefined(f, :Wfact_t)
4947-
__has_W_prototype(f) = isdefined(f, :W_prototype)
4948-
__has_paramjac(f) = isdefined(f, :paramjac)
4949-
__has_jac_prototype(f) = isdefined(f, :jac_prototype)
4950-
__has_controljac_prototype(f) = isdefined(f, :controljac_prototype)
4951-
__has_sparsity(f) = isdefined(f, :sparsity)
4952-
__has_mass_matrix(f) = isdefined(f, :mass_matrix)
4953-
__has_syms(f) = isdefined(f, :syms)
4954-
__has_indepsym(f) = isdefined(f, :indepsym)
4955-
__has_paramsyms(f) = isdefined(f, :paramsyms)
4956-
__has_observed(f) = isdefined(f, :observed)
4957-
__has_analytic(f) = isdefined(f, :analytic)
4958-
__has_colorvec(f) = isdefined(f, :colorvec)
4959-
__has_sys(f) = isdefined(f, :sys)
4960-
__has_analytic_full(f) = isdefined(f, :analytic_full)
4961-
__has_resid_prototype(f) = isdefined(f, :resid_prototype)
4962-
__has_nlstep_data(f) = isdefined(f, :nlstep_data)
4941+
__has_jac(f) = hasfield(typeof(f), :jac)
4942+
__has_jvp(f) = hasfield(typeof(f), :jvp)
4943+
__has_vjp(f) = hasfield(typeof(f), :vjp)
4944+
__has_tgrad(f) = hasfield(typeof(f), :tgrad)
4945+
__has_Wfact(f) = hasfield(typeof(f), :Wfact)
4946+
__has_Wfact_t(f) = hasfield(typeof(f), :Wfact_t)
4947+
__has_W_prototype(f) = hasfield(typeof(f), :W_prototype)
4948+
__has_paramjac(f) = hasfield(typeof(f), :paramjac)
4949+
__has_jac_prototype(f) = hasfield(typeof(f), :jac_prototype)
4950+
__has_controljac_prototype(f) = hasfield(typeof(f), :controljac_prototype)
4951+
__has_sparsity(f) = hasfield(typeof(f), :sparsity)
4952+
__has_mass_matrix(f) = hasfield(typeof(f), :mass_matrix)
4953+
__has_syms(f) = hasfield(typeof(f), :syms)
4954+
__has_indepsym(f) = hasfield(typeof(f), :indepsym)
4955+
__has_paramsyms(f) = hasfield(typeof(f), :paramsyms)
4956+
__has_observed(f) = hasfield(typeof(f), :observed)
4957+
__has_analytic(f) = hasfield(typeof(f), :analytic)
4958+
__has_colorvec(f) = hasfield(typeof(f), :colorvec)
4959+
__has_sys(f) = hasfield(typeof(f), :sys)
4960+
__has_analytic_full(f) = hasfield(typeof(f), :analytic_full)
4961+
__has_resid_prototype(f) = hasfield(typeof(f), :resid_prototype)
4962+
__has_nlstep_data(f) = hasfield(typeof(f), :nlstep_data)
49634963
function __has_initializeprob(f)
4964-
has_initialization_data(f) && isdefined(f.initialization_data, :initializeprob)
4964+
has_initialization_data(f) && hasfield(typeof(f.initialization_data), :initializeprob)
49654965
end
49664966
function __has_update_initializeprob!(f)
4967-
has_initialization_data(f) && isdefined(f.initialization_data, :update_initializeprob!)
4967+
has_initialization_data(f) && hasfield(typeof(f.initialization_data), :update_initializeprob!)
49684968
end
49694969
function __has_initializeprobmap(f)
4970-
has_initialization_data(f) && isdefined(f.initialization_data, :initializeprobmap)
4970+
has_initialization_data(f) && hasfield(typeof(f.initialization_data), :initializeprobmap)
49714971
end
49724972
function __has_initializeprobpmap(f)
4973-
has_initialization_data(f) && isdefined(f.initialization_data, :initializeprobpmap)
4974-
end
4975-
__has_initialization_data(f) = isdefined(f, :initialization_data)
4976-
__has_polynomialize(f) = isdefined(f, :polynomialize)
4977-
__has_unpolynomialize(f) = isdefined(f, :unpolynomialize)
4978-
__has_denominator(f) = isdefined(f, :denominator)
4979-
__has_cost(f) = isdefined(f, :cost)
4980-
__has_equality(f) = isdefined(f, :equality)
4981-
__has_inequality(f) = isdefined(f, :inequality)
4973+
has_initialization_data(f) && hasfield(typeof(f.initialization_data), :initializeprobpmap)
4974+
end
4975+
__has_initialization_data(f) = hasfield(typeof(f), :initialization_data)
4976+
__has_polynomialize(f) = hasfield(typeof(f), :polynomialize)
4977+
__has_unpolynomialize(f) = hasfield(typeof(f), :unpolynomialize)
4978+
__has_denominator(f) = hasfield(typeof(f), :denominator)
4979+
__has_cost(f) = hasfield(typeof(f), :cost)
4980+
__has_equality(f) = hasfield(typeof(f), :equality)
4981+
__has_inequality(f) = hasfield(typeof(f), :inequality)
49824982

49834983
# compatibility
49844984
has_invW(f::AbstractSciMLFunction) = false

0 commit comments

Comments
 (0)