[tarantool-patches] [PATCH] error: Add __concat method to error object
Oleg Babin
olegrok at tarantool.org
Tue Oct 22 16:14:29 MSK 2019
From: Oleg Babin <babinoleg at mail.ru>
Usually functions return pair {nil, err} and expected that err is string.
Let's make the behaviour of error object closer to string
and define __concat metamethod.
Closes tarantool/tarantool#4489
---
src/lua/error.lua | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/lua/error.lua b/src/lua/error.lua
index 28fc0377d..b44fab7b6 100644
--- a/src/lua/error.lua
+++ b/src/lua/error.lua
@@ -150,9 +150,17 @@ local function error_index(err, key)
return error_methods[key]
end
+local function error_concat(lhs, rhs)
+ if lhs == nil or rhs == nil then
+ error("attempt to concatenate struct error and nil")
+ end
+ return tostring(lhs) .. tostring(rhs)
+end
+
local error_mt = {
__index = error_index;
__tostring = error_message;
+ __concat = error_concat;
};
ffi.metatype('struct error', error_mt);
--
2.22.0
More information about the Tarantool-patches
mailing list