785785SymbolicIndexingInterface. supports_tuple_observed (:: AbstractSystem ) =  true 
786786
787787function  SymbolicIndexingInterface. observed (
788-         sys:: AbstractSystem , sym; eval_expression =  false , eval_module =  @__MODULE__ )
788+         sys:: AbstractSystem , sym; eval_expression =  false , eval_module =  @__MODULE__ , checkbounds  =   true )
789789    if  has_index_cache (sys) &&  (ic =  get_index_cache (sys)) != =  nothing 
790790        if  sym isa  Symbol
791791            _sym =  get (ic. symbol_to_variable, sym, nothing )
@@ -808,7 +808,8 @@ function SymbolicIndexingInterface.observed(
808808            end 
809809        end 
810810    end 
811-     _fn =  build_explicit_observed_function (sys, sym; eval_expression, eval_module)
811+     _fn =  build_explicit_observed_function (
812+         sys, sym; eval_expression, eval_module, checkbounds)
812813
813814    if  is_time_dependent (sys)
814815        return  _fn
@@ -1671,11 +1672,14 @@ struct ObservedFunctionCache{S}
16711672    steady_state:: Bool 
16721673    eval_expression:: Bool 
16731674    eval_module:: Module 
1675+     checkbounds:: Bool 
16741676end 
16751677
16761678function  ObservedFunctionCache (
1677-         sys; steady_state =  false , eval_expression =  false , eval_module =  @__MODULE__ )
1678-     return  ObservedFunctionCache (sys, Dict (), steady_state, eval_expression, eval_module)
1679+         sys; steady_state =  false , eval_expression =  false ,
1680+         eval_module =  @__MODULE__ , checkbounds =  true )
1681+     return  ObservedFunctionCache (
1682+         sys, Dict (), steady_state, eval_expression, eval_module, checkbounds)
16791683end 
16801684
16811685#  This is hit because ensemble problems do a deepcopy
@@ -1685,7 +1689,9 @@ function Base.deepcopy_internal(ofc::ObservedFunctionCache, stackdict::IdDict)
16851689    steady_state =  ofc. steady_state
16861690    eval_expression =  ofc. eval_expression
16871691    eval_module =  ofc. eval_module
1688-     newofc =  ObservedFunctionCache (sys, dict, steady_state, eval_expression, eval_module)
1692+     checkbounds =  ofc. checkbounds
1693+     newofc =  ObservedFunctionCache (
1694+         sys, dict, steady_state, eval_expression, eval_module, checkbounds)
16891695    stackdict[ofc] =  newofc
16901696    return  newofc
16911697end 
@@ -1694,7 +1700,7 @@ function (ofc::ObservedFunctionCache)(obsvar, args...)
16941700    obs =  get! (ofc. dict, value (obsvar)) do 
16951701        SymbolicIndexingInterface. observed (
16961702            ofc. sys, obsvar; eval_expression =  ofc. eval_expression,
1697-             eval_module =  ofc. eval_module)
1703+             eval_module =  ofc. eval_module, checkbounds  =  ofc . checkbounds )
16981704    end 
16991705    if  ofc. steady_state
17001706        obs =  let  fn =  obs
0 commit comments