title: Lua: Workaround for boolean conversion of a class variable when enclosed in parentheses
body: <p>In the below code, can anyone explain why does t1:print() works but (t1):print fails. I am attempting to make something like (t1 * 3):print() work without using an intermediate variable.</p>
  
  <pre><code>function classTestTable(members)
    members = members or {}
    local mt = {
      __metatable = members;
      __index     = members;
    }
  
    function mt.print(self)
      print("something")
    end
    return mt
  end
  
  TestTable = {}
  TestTable_mt = ClassTestTable(TestTable)
  
  function TestTable:new()
     return setmetatable({targ1 = 1}, TestTable_mt )
  end
  
  TestTable t1 = TestTable:new()
  
  t1:print() -- works fine. 
  (t1):print()  -- fails with error "attempt to call a boolean value"
  </code></pre>