Skip to content

Commit d4cdcd5

Browse files
committed
merge fixes
1 parent da50bf8 commit d4cdcd5

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/dsl.jl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -353,14 +353,17 @@ function make_reaction_system(ex::Expr; name = :(gensym(:ReactionSystem)))
353353
species_extracted, parameters_extracted = extract_species_and_parameters!(
354354
reactions, declared_syms; requiredec)
355355

356-
species = vcat(species_declared, species_extracted)
357-
parameters = vcat(parameters_declared, parameters_extracted)
358-
359-
# Reads equations.
360-
designated_syms = [species; parameters; variables_declared]
356+
# Reads equations (and infers potential variables).
357+
# Exlucdes any parameters already extracted (if they also was a variable).
358+
designated_syms = [declared_syms; species_extracted]
361359
vars_extracted, add_default_diff, equations = read_equations_options(
362360
options, designated_syms)
363361
variables = vcat(variables_declared, vars_extracted)
362+
parameters_extracted = setdiff(parameters_extracted, vars_extracted)
363+
364+
# Creates the finalised parameter and species lists.
365+
species = vcat(species_declared, species_extracted)
366+
parameters = vcat(parameters_declared, parameters_extracted)
364367

365368
# Create differential expression.
366369
diffexpr = create_differential_expr(
@@ -723,6 +726,7 @@ function read_equations_options(options, syms_declared; requiredec = false)
723726
end
724727

725728
# If the default differential (`D`) is used, record that it should be decalred later on.
729+
726730
if !in(eq, excluded_syms) && find_D_call(eq)
727731
requiredec && throw(UndeclaredSymbolicError(
728732
"Unrecognized symbol D was used as a differential in an equation: \"$eq\". Since the @require_declaration flag is set, all differentials in equations must be explicitly declared using the @differentials option."))

0 commit comments

Comments
 (0)