Skip to content

Commit 2d2fed7

Browse files
fix: allow passing nothing to override default for @mtkmodel models
1 parent 97898f6 commit 2d2fed7

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/systems/model_parsing.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,15 +148,18 @@ end
148148

149149
pop_structure_dict!(dict, key) = length(dict[key]) == 0 && pop!(dict, key)
150150

151+
struct NoValue end
152+
const NO_VALUE = NoValue()
153+
151154
function update_kwargs_and_metadata!(dict, kwargs, a, def, indices, type, var,
152155
varclass, where_types, meta)
153156
if indices isa Nothing
154157
if !isnothing(meta) && haskey(meta, VariableUnit)
155158
uvar = gensym()
156159
push!(where_types, uvar)
157-
push!(kwargs, Expr(:kw, :($a::Union{Nothing, Missing, $uvar}), nothing))
160+
push!(kwargs, Expr(:kw, :($a::Union{Nothing, Missing, $NoValue, $uvar}), NO_VALUE))
158161
else
159-
push!(kwargs, Expr(:kw, :($a::Union{Nothing, Missing, $type}), nothing))
162+
push!(kwargs, Expr(:kw, :($a::Union{Nothing, Missing, $NoValue, $type}), NO_VALUE))
160163
end
161164
dict[:kwargs][getname(var)] = Dict(:value => def, :type => type)
162165
else
@@ -679,7 +682,7 @@ function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
679682
varexpr = if haskey(metadata_with_exprs, VariableUnit)
680683
unit = metadata_with_exprs[VariableUnit]
681684
quote
682-
$name = if $name === nothing
685+
$name = if $name === $NO_VALUE
683686
$setdefault($vv, $def)
684687
else
685688
try
@@ -699,7 +702,7 @@ function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
699702
end
700703
else
701704
quote
702-
$name = if $name === nothing
705+
$name = if $name === $NO_VALUE
703706
$setdefault($vv, $def)
704707
else
705708
$setdefault($vv, $name)

0 commit comments

Comments
 (0)