@@ -148,24 +148,30 @@ 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,
161
+ Expr (:kw , :($ a:: Union{Nothing, Missing, $NoValue, $uvar} ), NO_VALUE))
158
162
else
159
- push! (kwargs, Expr (:kw , :($ a:: Union{Nothing, Missing, $type} ), nothing ))
163
+ push! (kwargs,
164
+ Expr (:kw , :($ a:: Union{Nothing, Missing, $NoValue, $type} ), NO_VALUE))
160
165
end
161
166
dict[:kwargs ][getname (var)] = Dict (:value => def, :type => type)
162
167
else
163
168
vartype = gensym (:T )
164
169
push! (kwargs,
165
170
Expr (:kw ,
166
171
Expr (:(:: ), a,
167
- Expr (:curly , :Union , :Nothing , Expr (:curly , :AbstractArray , vartype))),
168
- nothing ))
172
+ Expr (:curly , :Union , :Nothing , :Missing , NoValue,
173
+ Expr (:curly , :AbstractArray , vartype))),
174
+ NO_VALUE))
169
175
if ! isnothing (meta) && haskey (meta, VariableUnit)
170
176
push! (where_types, vartype)
171
177
else
@@ -679,7 +685,7 @@ function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
679
685
varexpr = if haskey (metadata_with_exprs, VariableUnit)
680
686
unit = metadata_with_exprs[VariableUnit]
681
687
quote
682
- $ name = if $ name === nothing
688
+ $ name = if $ name === $ NO_VALUE
683
689
$ setdefault ($ vv, $ def)
684
690
else
685
691
try
@@ -699,7 +705,7 @@ function parse_variable_arg(dict, mod, arg, varclass, kwargs, where_types)
699
705
end
700
706
else
701
707
quote
702
- $ name = if $ name === nothing
708
+ $ name = if $ name === $ NO_VALUE
703
709
$ setdefault ($ vv, $ def)
704
710
else
705
711
$ setdefault ($ vv, $ name)
0 commit comments