Open maxdemarzi opened 1 year ago
I tested the new exhaustive check feature out as a Conan recipe: https://github.com/ragedb/sol2-recipe
When I run: conan create . 3.3.0-exhaustive@
When I try to return Nodes using exhaustive it returns NULL from the function:
lua.set_function("NodesGet", sol::overload( [this](sol::exhaustive<std::vector<uint64_t>> ids) { return this->NodesGetViaLua(ids.value()); }, [this](sol::exhaustive<std::vector<Link>> links) { return this->NodesGetByLinksViaLua(links.value()); } ));
The function itself is fine, I have this elsewhere and it returns correctly:
lua.set_function("LinksGetNode", &Shard::NodesGetByLinksViaLua, this);
Worst still when I try:
lua.set_function("NodesGet", sol::overload( [this](sol::exhaustive_until<std::vector<uint64_t>, 1> ids) { return this->NodesGetViaLua(ids.value()); }, [this](sol::exhaustive_until<std::vector<Link>, 1> links) { return this->NodesGetByLinksViaLua(links.value()); } ));
gives me a segfault.
The stacktrace:
stack trace: /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:905 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:934 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:712 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:180 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:712 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:261 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:723 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_check_get_qualified.hpp:121 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_check_get_qualified.hpp:136 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:1083 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:1287 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:165 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:201 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:229 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:276 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:378 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:599 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:907 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/function_types_overloaded.hpp:47 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/function_types_overloaded.hpp:54 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:295 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:302 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:315 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/function_types_overloaded.hpp:60 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/function_types_core.hpp:36 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/trampoline.hpp:105 /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/trampoline.hpp:133
See this image while debugging as well:
Full debug info on stacktrace:
sol::stack::unqualified_getter<sol::detail::as_value_tag<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, void>::get_no_lua_nil(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:905 sol::stack::unqualified_getter<sol::detail::as_value_tag<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, void>::get(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:934 decltype(auto) sol::stack::stack_detail::unchecked_unqualified_get<sol::detail::as_value_tag<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:712 sol::stack::unqualified_getter<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, void>::get(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:180 decltype(auto) sol::stack::stack_detail::unchecked_unqualified_get<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:712 sol::stack::qualified_getter<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, void>::get(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_get_unqualified.hpp:261 decltype(auto) sol::stack::stack_detail::unchecked_get<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >(lua_State*, int, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:723 sol::optional<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>&> sol::stack::stack_detail::get_optional<sol::optional<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>&>, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&>(lua_State*, int, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_check_get_qualified.hpp:121 sol::optional<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>&> sol::stack::qualified_check_getter<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, void>::get<sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&>(lua_State*, int, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_check_get_qualified.hpp:136 decltype(auto) sol::stack::check_get<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&>(lua_State*, int, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:1083 decltype(auto) sol::stack::stack_detail::check_get_arg<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&>(lua_State*, int, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&, sol::stack::record&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack_core.hpp:1287 decltype(auto) sol::stack::stack_detail::eval<true, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, , 0ul, , sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>>, std::integer_sequence<unsigned long, 0ul>, lua_State*, int, sol::argument_handler<sol::types<sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> > >&, sol::stack::record&, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller&&, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:165 decltype(auto) sol::stack::stack_detail::call<true, 0ul, sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(sol::types<sol::basic_table_core<false, sol::basic_reference<false> > >, sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, std::integer_sequence<unsigned long, 0ul>, lua_State*, int, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller&&, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:201 decltype(auto) sol::stack::call<true, sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(sol::types<sol::basic_table_core<false, sol::basic_reference<false> > >, sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, lua_State*, int, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller&&, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:229 int sol::stack::call_into_lua<true, true, sol::basic_table_core<false, sol::basic_reference<false> >, , sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(sol::types<sol::basic_table_core<false, sol::basic_reference<false> >>, sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, lua_State*, int, sol::wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, void>::caller&&, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/stack.hpp:276 int sol::call_detail::agnostic_lua_call_wrapper<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, true, false, true, 0, true, void>::call<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(lua_State*, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:378 int sol::call_detail::lua_call_wrapper<void, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, true, false, true, 0, true, void>::call<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(lua_State*, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:599 int sol::call_detail::call_wrapped<void, true, false, 0, true, true, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&>(lua_State*, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/call.hpp:907 int sol::function_detail::overloaded_function<0, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, ragedb::Shard::exhaustive_until(unsigned int)::{lambda(sol::exhaustive_until<std::vector<ragedb::Link, std::allocator<ragedb::Link> >, 1ul>)#13}>::call<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, 0ul, sol::basic_table_core<false, sol::basic_reference<false> >, sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >(sol::types<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}>, std::integral_constant<unsigned long, 0ul>, sol::types<sol::basic_table_core<false, sol::basic_reference<false> > >, sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, lua_State*, int, int, std::tuple<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, ragedb::Shard::exhaustive_until(unsigned int)::{lambda(sol::exhaustive_until<std::vector<ragedb::Link, std::allocator<ragedb::Link> >, 1ul>)#13}>&) at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/function_types_overloaded.hpp:47 int sol::function_detail::overloaded_function<0, ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, ragedb::Shard::exhaustive_until(unsigned int)::{lambda(sol::exhaustive_until<std::vector<ragedb::Link, std::allocator<ragedb::Link> >, 1ul>)#13}>::on_success::operator()<sol::types<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}>, std::integral_constant<unsigned long, 0ul>, sol::types<sol::basic_table_core<false, sol::basic_reference<false> > >, sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >, lua_State*&, int&, int&, std::tuple<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, ragedb::Shard::exhaustive_until(unsigned int)::{lambda(sol::exhaustive_until<std::vector<ragedb::Link, std::allocator<ragedb::Link> >, 1ul>)#13}>&>(sol::types<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}>&&, std::integral_constant<unsigned long, 0ul>&&, sol::types<sol::basic_table_core<false, sol::basic_reference<false> > >&&, sol::types<sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul> >&&, lua_State*&, int&, int&, std::tuple<ragedb::Shard::Shard(unsigned int)::{lambda(sol::exhaustive_until<std::vector<unsigned long, std::allocator<unsigned long> >, 1ul>)#12}, ragedb::Shard::exhaustive_until(unsigned int)::{lambda(sol::exhaustive_until<std::vector<ragedb::Link, std::allocator<ragedb::Link> >, 1ul>)#13}>&) const at /home/max/.conan/data/sol2/3.3.0-exhaustive/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/sol/function_types_overloaded.hpp:54
I tested the new exhaustive check feature out as a Conan recipe: https://github.com/ragedb/sol2-recipe
When I run: conan create . 3.3.0-exhaustive@
When I try to return Nodes using exhaustive it returns NULL from the function:
The function itself is fine, I have this elsewhere and it returns correctly:
Worst still when I try:
gives me a segfault.
The stacktrace:
See this image while debugging as well:
Full debug info on stacktrace: