@@ -348,20 +348,8 @@ function DiffEqBase.DiscreteProblem(sys::JumpSystem, u0map, tspan::Union{Tuple,
348348    if  ! iscomplete (sys)
349349        error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblem`" 
350350    end 
351-     dvs =  unknowns (sys)
352-     ps =  parameters (sys)
353- 
354-     defs =  defaults (sys)
355-     defs =  mergedefaults (defs, parammap, ps)
356-     defs =  mergedefaults (defs, u0map, dvs)
357- 
358-     u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  false )
359-     if  has_index_cache (sys) &&  get_index_cache (sys) != =  nothing 
360-         p =  MTKParameters (sys, parammap, u0map)
361-     else 
362-         p =  varmap_to_vars (parammap, ps; defaults =  defs, tofloat =  false , use_union)
363-     end 
364- 
351+     _, u0, p =  process_SciMLProblem (EmptySciMLFunction, sys, u0map, parammap;
352+         t =  tspan ===  nothing  ?  nothing  :  tspan[1 ], use_union, tofloat =  false , check_length =  false )
365353    f =  DiffEqBase. DISCRETE_INPLACE_DEFAULT
366354
367355    observedfun =  ObservedFunctionCache (sys; eval_expression, eval_module)
@@ -399,16 +387,9 @@ function DiscreteProblemExpr{iip}(sys::JumpSystem, u0map, tspan::Union{Tuple, No
399387    if  ! iscomplete (sys)
400388        error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblemExpr`" 
401389    end 
402-     dvs =  unknowns (sys)
403-     ps =  parameters (sys)
404-     defs =  defaults (sys)
405390
406-     u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  false )
407-     if  has_index_cache (sys) &&  get_index_cache (sys) != =  nothing 
408-         p =  MTKParameters (sys, parammap, u0map)
409-     else 
410-         p =  varmap_to_vars (parammap, ps; defaults =  defs, tofloat =  false , use_union)
411-     end 
391+     _, u0, p =  process_SciMLProblem (EmptySciMLFunction, sys, u0map, parammap;
392+         t =  tspan ===  nothing  ?  nothing  :  tspan[1 ], use_union, tofloat =  false , check_length =  false )
412393    #  identity function to make syms works
413394    quote 
414395        f =  DiffEqBase. DISCRETE_INPLACE_DEFAULT
@@ -454,19 +435,9 @@ function DiffEqBase.ODEProblem(sys::JumpSystem, u0map, tspan::Union{Tuple, Nothi
454435    if  ! iscomplete (sys)
455436        error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblem`" 
456437    end 
457-     dvs =  unknowns (sys)
458-     ps =  parameters (sys)
459- 
460-     defs =  defaults (sys)
461-     defs =  mergedefaults (defs, parammap, ps)
462-     defs =  mergedefaults (defs, u0map, dvs)
463438
464-     u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  false )
465-     if  has_index_cache (sys) &&  get_index_cache (sys) != =  nothing 
466-         p =  MTKParameters (sys, parammap, u0map)
467-     else 
468-         p =  varmap_to_vars (parammap, ps; defaults =  defs, tofloat =  false , use_union)
469-     end 
439+     _, u0, p =  process_SciMLProblem (EmptySciMLFunction, sys, u0map, parammap;
440+         t =  tspan ===  nothing  ?  nothing  :  tspan[1 ], use_union, tofloat =  false , check_length =  false )
470441
471442    observedfun =  ObservedFunctionCache (sys; eval_expression, eval_module)
472443
0 commit comments