Skip to content

Commit 1290985

Browse files
committed
refactor: set default value of the symbolic-array-kwargs to NO_VALUE
1 parent 7b9a234 commit 1290985

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

src/systems/model_parsing.jl

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,9 @@ function update_array_kwargs_and_metadata!(
215215
push!(kwargs,
216216
Expr(:kw,
217217
Expr(:(::), varname,
218-
Expr(:curly, :Union, :Nothing, Expr(:curly, :AbstractArray, vartype))),
219-
nothing))
218+
Expr(:curly, :Union, :Nothing, :Missing, NoValue,
219+
Expr(:curly, :AbstractArray, vartype))),
220+
NO_VALUE))
220221
if !isnothing(meta) && haskey(meta, VariableUnit)
221222
push!(where_types, vartype)
222223
else
@@ -300,14 +301,14 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, where_types;
300301
if varclass == :parameters
301302
Meta.isexpr(a, :call) &&
302303
assert_unique_independent_var(dict, a.args[end])
303-
var = :($varname = $varname === nothing ? $val : $varname;
304+
var = :($varname = $varname === $NO_VALUE ? $val : $varname;
304305
$varname = $first(@parameters ($a[$(indices...)]::$type = $varval),
305306
$(def_n_meta...)))
306307
else
307308
Meta.isexpr(a, :call) ||
308309
throw("$a is not a variable of the independent variable")
309310
assert_unique_independent_var(dict, a.args[end])
310-
var = :($varname = $varname === nothing ? $val : $varname;
311+
var = :($varname = $varname === $NO_VALUE ? $val : $varname;
311312
$varname = $first(@variables $a[$(indices...)]::$type = (
312313
$varval),
313314
$(def_n_meta...)))
@@ -316,13 +317,13 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, where_types;
316317
if varclass == :parameters
317318
Meta.isexpr(a, :call) &&
318319
assert_unique_independent_var(dict, a.args[end])
319-
var = :($varname = $varname === nothing ? $def_n_meta : $varname;
320+
var = :($varname = $varname === $NO_VALUE ? $def_n_meta : $varname;
320321
$varname = $first(@parameters $a[$(indices...)]::$type = $varname))
321322
else
322323
Meta.isexpr(a, :call) ||
323324
throw("$a is not a variable of the independent variable")
324325
assert_unique_independent_var(dict, a.args[end])
325-
var = :($varname = $varname === nothing ? $def_n_meta : $varname;
326+
var = :($varname = $varname === $NO_VALUE ? $def_n_meta : $varname;
326327
$varname = $first(@variables $a[$(indices...)]::$type = $varname))
327328
end
328329
varval, meta = def_n_meta, nothing
@@ -765,33 +766,31 @@ function parse_variable_arg!(exprs, vs, dict, mod, arg, varclass, kwargs, where_
765766
end
766767

767768
function convert_units(varunits::DynamicQuantities.Quantity, value)
768-
value isa Nothing && return nothing
769769
DynamicQuantities.ustrip(DynamicQuantities.uconvert(
770770
DynamicQuantities.SymbolicUnits.as_quantity(varunits), value))
771771
end
772772

773+
convert_units(::DynamicQuantities.Quantity, value::NoValue) = NO_VALUE
774+
773775
function convert_units(
774776
varunits::DynamicQuantities.Quantity, value::AbstractArray{T}) where {T}
775777
DynamicQuantities.ustrip.(DynamicQuantities.uconvert.(
776778
DynamicQuantities.SymbolicUnits.as_quantity(varunits), value))
777779
end
778780

779781
function convert_units(varunits::Unitful.FreeUnits, value)
780-
value isa Nothing && return nothing
781782
Unitful.ustrip(varunits, value)
782783
end
783784

785+
convert_units(::Unitful.FreeUnits, value::NoValue) = NO_VALUE
786+
784787
function convert_units(varunits::Unitful.FreeUnits, value::AbstractArray{T}) where {T}
785788
Unitful.ustrip.(varunits, value)
786789
end
787790

788-
function convert_units(varunits::Unitful.FreeUnits, value::Num)
789-
value
790-
end
791+
convert_units(::Unitful.FreeUnits, value::Num) = value
791792

792-
function convert_units(varunits::DynamicQuantities.Quantity, value::Num)
793-
value
794-
end
793+
convert_units(::DynamicQuantities.Quantity, value::Num) = value
795794

796795
function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
797796
vv, def, metadata_with_exprs = parse_variable_def!(

0 commit comments

Comments
 (0)