mirror of
https://github.com/neovim/neovim.git
synced 2026-09-18 19:55:01 +00:00
fix(vim.version): fix metatable for intersections #41615
Problem: `vim.version.intersect()` returns tables with `VersionRange` (method table) as their metatable. Although the calculated bounds are correct, the results do not expose `VersionRange` methods. Solution: Construct intersection tables with `range_mt`, matching `vim.version.range()`. Add assertions covering method access and repeated intersection.
This commit is contained in:
committed by
GitHub
parent
a41d008666
commit
8321941ff2
@@ -167,8 +167,12 @@ describe('version', function()
|
||||
eq(nil, vim.version.intersect(r2, r1))
|
||||
else
|
||||
local ref = vim.version.range(output)
|
||||
eq(ref, vim.version.intersect(r1, r2))
|
||||
eq(ref, vim.version.intersect(r2, r1))
|
||||
local result1 = vim.version.intersect(r1, r2)
|
||||
local result2 = vim.version.intersect(r2, r1)
|
||||
eq(ref, result1)
|
||||
eq(ref, result2)
|
||||
assert(result1:has(result1.from))
|
||||
eq(result1, vim.version.intersect(result1, r1))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user