@@ -148,15 +148,18 @@ end
148
148
149
149
pop_structure_dict! (dict, key) = length (dict[key]) == 0 && pop! (dict, key)
150
150
151
+ struct NoValue end
152
+ const NO_VALUE = NoValue ()
153
+
151
154
function update_kwargs_and_metadata! (dict, kwargs, a, def, indices, type, var,
152
155
varclass, where_types, meta)
153
156
if indices isa Nothing
154
157
if ! isnothing (meta) && haskey (meta, VariableUnit)
155
158
uvar = gensym ()
156
159
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 ))
158
161
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 ))
160
163
end
161
164
dict[:kwargs ][getname (var)] = Dict (:value => def, :type => type)
162
165
else
@@ -679,7 +682,7 @@ function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
679
682
varexpr = if haskey (metadata_with_exprs, VariableUnit)
680
683
unit = metadata_with_exprs[VariableUnit]
681
684
quote
682
- $ name = if $ name === nothing
685
+ $ name = if $ name === $ NO_VALUE
683
686
$ setdefault ($ vv, $ def)
684
687
else
685
688
try
@@ -699,7 +702,7 @@ function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
699
702
end
700
703
else
701
704
quote
702
- $ name = if $ name === nothing
705
+ $ name = if $ name === $ NO_VALUE
703
706
$ setdefault ($ vv, $ def)
704
707
else
705
708
$ setdefault ($ vv, $ name)
0 commit comments