mirror of
https://github.com/kikito/inspect.lua.git
synced 2024-12-15 14:34:21 +00:00
Merge pull request #27 from andreashofer123/tostring
fix endless recursion when using inspect to reimplement global tostring
This commit is contained in:
commit
3300ae7847
@ -28,6 +28,8 @@ local inspect ={
|
||||
]]
|
||||
}
|
||||
|
||||
local tostring = tostring
|
||||
|
||||
inspect.KEY = setmetatable({}, {__tostring = function() return 'inspect.KEY' end})
|
||||
inspect.METATABLE = setmetatable({}, {__tostring = function() return 'inspect.METATABLE' end})
|
||||
|
||||
@ -202,7 +204,7 @@ function Inspector:puts(...)
|
||||
local len = #buffer
|
||||
for i=1, #args do
|
||||
len = len + 1
|
||||
buffer[len] = tostring(args[i])
|
||||
buffer[len] = args[i]
|
||||
end
|
||||
end
|
||||
|
||||
@ -228,7 +230,7 @@ function Inspector:getId(v)
|
||||
self.maxIds[tv] = id
|
||||
self.ids[tv][v] = id
|
||||
end
|
||||
return id
|
||||
return tostring(id)
|
||||
end
|
||||
|
||||
function Inspector:putKey(k)
|
||||
|
@ -417,4 +417,13 @@ describe( 'inspect', function()
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
it('allows changing the global tostring', function()
|
||||
local save = _G.tostring
|
||||
_G.tostring = inspect
|
||||
local s = tostring({1, 2, 3})
|
||||
_G.tostring = save
|
||||
assert.equals("{ 1, 2, 3 }", s)
|
||||
end)
|
||||
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user