From 5c139ac5b9a8535ad73f0f1d9777de542cf4791d Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Wed, 28 Jan 2009 18:40:53 +0000 Subject: [PATCH] Add test for metatable operations which combine __mode and other tags. --- src/test/res/metatables.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/test/res/metatables.lua b/src/test/res/metatables.lua index 8ff6fdf7..e18be17d 100644 --- a/src/test/res/metatables.lua +++ b/src/test/res/metatables.lua @@ -29,3 +29,20 @@ op('set-nil',nil) op('set{__}',{__metatable='abc'}) op('set{} ',{}) op('set-nil',nil) + + +local i = 1234 +local t = setmetatable( {}, { + __mode="v", + __index=function(t,k) + local v = i + i = i + 1 + rawset(t,k,v) + return v + end, +} ) + +local l = { 'a', 'b', 'a', 'b', 'c', 'a', 'b', 'c', 'd' } +for i,key in ipairs(l) do + print( 't.'..key, t[key] ) +end \ No newline at end of file