From ce1154048b11cdc402d0e5da352a3adca19afb56 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Thu, 12 Mar 2026 15:04:05 +0000 Subject: refactor: integer functions, optimize asserts #34112 refactor(lua): add integer coercion helpers Add vim._tointeger() and vim._ensure_integer(), including optional base support, and switch integer-only tonumber()/assert call sites in the Lua runtime to use them. This also cleans up related integer parsing in LSP, health, loader, URI, tohtml, and Treesitter code. supported by AI --- runtime/lua/vim/loader.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'runtime/lua/vim/loader.lua') diff --git a/runtime/lua/vim/loader.lua b/runtime/lua/vim/loader.lua index c5279990d1..6aa79a0244 100644 --- a/runtime/lua/vim/loader.lua +++ b/runtime/lua/vim/loader.lua @@ -174,13 +174,21 @@ local function read_cachefile(cname) --- @type integer[]|{[0]:integer} local header = vim.split(data:sub(1, zero - 1), ',') - if tonumber(header[1]) ~= VERSION then + local version = vim._tointeger(header[1]) + if version ~= VERSION then + return + end + + local size = vim._tointeger(header[2]) + local sec = vim._tointeger(header[3]) + local nsec = vim._tointeger(header[4]) + if not (size and sec and nsec) then return end local hash = { - size = tonumber(header[2]), - mtime = { sec = tonumber(header[3]), nsec = tonumber(header[4]) }, + size = size, + mtime = { sec = sec, nsec = nsec }, } local chunk = data:sub(zero + 1) -- cgit