Skip to content

Commit 786a169

Browse files
committed
More edge cases
1 parent 177316c commit 786a169

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/systems/abstractsystem.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ function _named(expr)
454454

455455
kws = call.args[2].args
456456

457-
if !any(kw->kw.args[1] == :name, kws) # don't overwrite `name` kwarg
457+
if !any(kw->(kw isa Symbol ? kw : kw.args[1]) == :name, kws) # don't overwrite `name` kwarg
458458
push!(kws, Expr(:kw, :name, Meta.quot(name)))
459459
end
460460
:($name = $call)

test/direct.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,20 @@ pp = :name => :cool_name
228228
@named cool_name = foo(42; name = 3)
229229
@test cool_name[1] == (42,)
230230
@test collect(cool_name[2]) == [:name => 3]
231+
232+
if VERSION >= v"1.5"
233+
name = 3
234+
@named cool_name = foo(42; name)
235+
@test cool_name[1] == (42,)
236+
@test collect(cool_name[2]) == [:name => name]
237+
@named cool_name = foo(; name)
238+
@test collect(cool_name) == [:name => name]
239+
240+
ff = 3
241+
@named cool_name = foo(42; ff)
242+
@test cool_name[1] == (42,)
243+
@test collect(cool_name[2]) == [:ff => ff; pp]
244+
245+
@named cool_name = foo(;ff)
246+
@test collect(cool_name) == [:ff => ff; pp]
247+
end

0 commit comments

Comments
 (0)