@@ -61,13 +61,13 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, def = nothing)
6161 arg isa LineNumberNode && return
6262 MLStyle. @match arg begin
6363 a:: Symbol => begin
64- push! (kwargs, Expr (:kw , a, def ))
64+ push! (kwargs, Expr (:kw , a, nothing ))
6565 var = generate_var! (dict, a, varclass)
6666 dict[:kwargs ][getname (var)] = def
6767 (var, nothing )
6868 end
6969 Expr (:call , a, b) => begin
70- push! (kwargs, Expr (:kw , a, def ))
70+ push! (kwargs, Expr (:kw , a, nothing ))
7171 var = generate_var! (dict, a, b, varclass)
7272 dict[:kwargs ][getname (var)] = def
7373 (var, nothing )
@@ -77,14 +77,6 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, def = nothing)
7777 def, meta = parse_default (mod, b)
7878 var, _ = parse_variable_def! (dict, mod, a, varclass, kwargs, def)
7979 dict[varclass][getname (var)][:default ] = def
80- if typeof (def) != Symbol
81- var = setdefault (var, def)
82- def = nothing
83- else
84- def in [keys (dict[:kwargs ])... ;] ||
85- error (" $def is not a known parameter or variable" )
86- var = setdefault (var, def)
87- end
8880 if ! isnothing (meta)
8981 if (ct = get (meta, VariableConnectType, nothing )) != = nothing
9082 dict[varclass][getname (var)][:connection_type ] = nameof (ct)
@@ -94,12 +86,12 @@ function parse_variable_def!(dict, mod, arg, varclass, kwargs, def = nothing)
9486 (var, def)
9587 end
9688 Expr (:tuple , a, b) => begin
97- var, _ = parse_variable_def! (dict, mod, a, varclass, kwargs)
89+ var, def = parse_variable_def! (dict, mod, a, varclass, kwargs)
9890 meta = parse_metadata (mod, b)
9991 if (ct = get (meta, VariableConnectType, nothing )) != = nothing
10092 dict[varclass][getname (var)][:connection_type ] = nameof (ct)
10193 end
102- (set_var_metadata (var, meta), nothing )
94+ (set_var_metadata (var, meta), def )
10395 end
10496 _ => error (" $arg cannot be parsed" )
10597 end
@@ -336,11 +328,12 @@ function parse_extend!(exprs, ext, dict, body)
336328end
337329
338330function parse_variable_arg! (expr, vs, dict, mod, arg, varclass, kwargs)
339- vv, _ = parse_variable_def! (dict, mod, arg, varclass, kwargs)
331+ vv, def = parse_variable_def! (dict, mod, arg, varclass, kwargs)
340332 v = Num (vv)
341333 name = getname (v)
342334 push! (vs, name)
343- push! (expr. args, :($ name = $ name === nothing ? $ vv : $ setdefault ($ vv, $ name)))
335+ push! (expr. args,
336+ :($ name = $ name === nothing ? $ setdefault ($ vv, $ def) : $ setdefault ($ vv, $ name)))
344337end
345338
346339function parse_variables! (exprs, vs, dict, mod, body, varclass, kwargs)
0 commit comments