@@ -215,8 +215,9 @@ function update_array_kwargs_and_metadata!(
215
215
push! (kwargs,
216
216
Expr (:kw ,
217
217
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))
220
221
if ! isnothing (meta) && haskey (meta, VariableUnit)
221
222
push! (where_types, vartype)
222
223
else
@@ -300,14 +301,14 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, where_types;
300
301
if varclass == :parameters
301
302
Meta. isexpr (a, :call ) &&
302
303
assert_unique_independent_var (dict, a. args[end ])
303
- var = :($ varname = $ varname === nothing ? $ val : $ varname;
304
+ var = :($ varname = $ varname === $ NO_VALUE ? $ val : $ varname;
304
305
$ varname = $ first (@parameters ($ a[$ (indices... )]:: $type = $ varval),
305
306
$ (def_n_meta... )))
306
307
else
307
308
Meta. isexpr (a, :call ) ||
308
309
throw (" $a is not a variable of the independent variable" )
309
310
assert_unique_independent_var (dict, a. args[end ])
310
- var = :($ varname = $ varname === nothing ? $ val : $ varname;
311
+ var = :($ varname = $ varname === $ NO_VALUE ? $ val : $ varname;
311
312
$ varname = $ first (@variables $ a[$ (indices... )]:: $type = (
312
313
$ varval),
313
314
$ (def_n_meta... )))
@@ -316,13 +317,13 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, where_types;
316
317
if varclass == :parameters
317
318
Meta. isexpr (a, :call ) &&
318
319
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;
320
321
$ varname = $ first (@parameters $ a[$ (indices... )]:: $type = $ varname))
321
322
else
322
323
Meta. isexpr (a, :call ) ||
323
324
throw (" $a is not a variable of the independent variable" )
324
325
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;
326
327
$ varname = $ first (@variables $ a[$ (indices... )]:: $type = $ varname))
327
328
end
328
329
varval, meta = def_n_meta, nothing
@@ -765,33 +766,31 @@ function parse_variable_arg!(exprs, vs, dict, mod, arg, varclass, kwargs, where_
765
766
end
766
767
767
768
function convert_units (varunits:: DynamicQuantities.Quantity , value)
768
- value isa Nothing && return nothing
769
769
DynamicQuantities. ustrip (DynamicQuantities. uconvert (
770
770
DynamicQuantities. SymbolicUnits. as_quantity (varunits), value))
771
771
end
772
772
773
+ convert_units (:: DynamicQuantities.Quantity , value:: NoValue ) = NO_VALUE
774
+
773
775
function convert_units (
774
776
varunits:: DynamicQuantities.Quantity , value:: AbstractArray{T} ) where {T}
775
777
DynamicQuantities. ustrip .(DynamicQuantities. uconvert .(
776
778
DynamicQuantities. SymbolicUnits. as_quantity (varunits), value))
777
779
end
778
780
779
781
function convert_units (varunits:: Unitful.FreeUnits , value)
780
- value isa Nothing && return nothing
781
782
Unitful. ustrip (varunits, value)
782
783
end
783
784
785
+ convert_units (:: Unitful.FreeUnits , value:: NoValue ) = NO_VALUE
786
+
784
787
function convert_units (varunits:: Unitful.FreeUnits , value:: AbstractArray{T} ) where {T}
785
788
Unitful. ustrip .(varunits, value)
786
789
end
787
790
788
- function convert_units (varunits:: Unitful.FreeUnits , value:: Num )
789
- value
790
- end
791
+ convert_units (:: Unitful.FreeUnits , value:: Num ) = value
791
792
792
- function convert_units (varunits:: DynamicQuantities.Quantity , value:: Num )
793
- value
794
- end
793
+ convert_units (:: DynamicQuantities.Quantity , value:: Num ) = value
795
794
796
795
function parse_variable_arg (dict, mod, arg, varclass, kwargs, where_types)
797
796
vv, def, metadata_with_exprs = parse_variable_def! (
0 commit comments