@@ -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_
765766end
766767
767768function convert_units (varunits:: DynamicQuantities.Quantity , value)
768- value isa Nothing && return nothing
769769 DynamicQuantities. ustrip (DynamicQuantities. uconvert (
770770 DynamicQuantities. SymbolicUnits. as_quantity (varunits), value))
771771end
772772
773+ convert_units (:: DynamicQuantities.Quantity , value:: NoValue ) = NO_VALUE
774+
773775function convert_units (
774776 varunits:: DynamicQuantities.Quantity , value:: AbstractArray{T} ) where {T}
775777 DynamicQuantities. ustrip .(DynamicQuantities. uconvert .(
776778 DynamicQuantities. SymbolicUnits. as_quantity (varunits), value))
777779end
778780
779781function convert_units (varunits:: Unitful.FreeUnits , value)
780- value isa Nothing && return nothing
781782 Unitful. ustrip (varunits, value)
782783end
783784
785+ convert_units (:: Unitful.FreeUnits , value:: NoValue ) = NO_VALUE
786+
784787function convert_units (varunits:: Unitful.FreeUnits , value:: AbstractArray{T} ) where {T}
785788 Unitful. ustrip .(varunits, value)
786789end
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
796795function parse_variable_arg (dict, mod, arg, varclass, kwargs, where_types)
797796 vv, def, metadata_with_exprs = parse_variable_def! (
0 commit comments