misc.merge: ensure that misc.none is never returned (#441)
Before this change:
1. `misc.merge({a = misc.none}, {a = nil})` returned `{a = misc.none}`
2. `misc.merge({a = nil}, {a = misc.none})` returned `{a = misc.none}`
(1) can cause error if a non-existing mapping is set to `config.disable`
(which is an alias for `misc.none`).
(2) does not cause any issue to date, but is inconsistent with the
expected behavior of `misc.merge(…)`.
After this change:
1. `misc.merge({a = misc.none}, {a = nil})` returns `{a = nil}`
2. `misc.merge({a = nil}, {a = misc.none})` returns `{a = nil}`
Fixes #440.
This commit is contained in:
@@ -33,5 +33,19 @@ describe('misc', function()
|
||||
},
|
||||
})
|
||||
assert.are.equal(merged.a, nil)
|
||||
|
||||
merged = misc.merge({
|
||||
a = misc.none,
|
||||
}, {
|
||||
a = nil,
|
||||
})
|
||||
assert.are.equal(merged.a, nil)
|
||||
|
||||
merged = misc.merge({
|
||||
a = nil,
|
||||
}, {
|
||||
a = misc.none,
|
||||
})
|
||||
assert.are.equal(merged.a, nil)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user