mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
fix(vim.version): vim.VersionRange:has(<prerelease>) (#33324)
Problem:
`vim.version.range('>=0.10'):has('0.12.0-dev')` returns false, which is
wrong per semver.
Solution:
`vim.VersionRange:has()` shouldn't have special handling for prereleases
(Why would we need it when `__eq`, `__lt`, `__le` already handle
prereleases?).
Closes #33316
This commit is contained in:
@@ -238,8 +238,8 @@ function VersionRange:has(version)
|
||||
version = setmetatable(vim.deepcopy(version, true), Version)
|
||||
end
|
||||
if version then
|
||||
if version.prerelease ~= self.from.prerelease then
|
||||
return false
|
||||
if self.from == self.to then
|
||||
return version == self.from
|
||||
end
|
||||
return version >= self.from and (self.to == nil or version < self.to)
|
||||
end
|
||||
@@ -310,9 +310,7 @@ function M.range(spec) -- Adapted from https://github.com/folke/lazy.nvim
|
||||
local from = semver --- @type vim.Version?
|
||||
local to = vim.deepcopy(semver, true) --- @type vim.Version?
|
||||
---@diagnostic disable: need-check-nil
|
||||
if mods == '' or mods == '=' then
|
||||
to.patch = to.patch + 1
|
||||
elseif mods == '<' then
|
||||
if mods == '<' then
|
||||
from = M._version({})
|
||||
elseif mods == '<=' then
|
||||
from = M._version({})
|
||||
|
||||
Reference in New Issue
Block a user