Skip to main content

luaur_vm/functions/
lua_g_concaterror.rs

1//! Node: `cxx:Function:Luau.VM:VM/src/ldebug.cpp:256:luaG_concaterror`
2//! Source: `VM/src/ldebug.cpp:256-262` (hand-ported)
3
4use core::ffi::{c_char, CStr};
5
6use crate::functions::lua_t_objtypename::lua_t_objtypename;
7use crate::macros::lua_g_runerror::lua_g_runerror;
8use crate::type_aliases::lua_state::lua_State;
9use crate::type_aliases::stk_id::StkId;
10
11#[allow(non_snake_case)]
12pub unsafe fn lua_g_concaterror(L: *mut lua_State, p1: StkId, p2: StkId) -> ! {
13    let t1: *const c_char = lua_t_objtypename(L, p1);
14    let t2: *const c_char = lua_t_objtypename(L, p2);
15
16    lua_g_runerror!(
17        L,
18        "attempt to concatenate {} with {}",
19        CStr::from_ptr(t1).to_string_lossy(),
20        CStr::from_ptr(t2).to_string_lossy()
21    )
22}
23
24#[allow(non_snake_case)]
25pub unsafe fn luaG_concaterror(L: *mut lua_State, p1: StkId, p2: StkId) -> ! {
26    lua_g_concaterror(L, p1, p2)
27}