Fix lua finaliser parameter check

This commit is contained in:
lumi 2025-06-26 19:24:19 +10:00
parent 01f459ffaf
commit 240e0111bf
Signed by: luaneko
GPG Key ID: 406809B8763FF07A

View File

@ -745,11 +745,17 @@ fn inject_merged_drop(registry: &mut Registry, lua: Option<&LuaFunction>) -> Res
"finaliser must take exactly one parameter" "finaliser must take exactly one parameter"
); );
syn_assert!( match lua.params[0] {
pat_ident(&lua.params[0])? == "self", // should be `self: cdata` PatType
lua.params[0], Pat::Type(ref ty) => {
"finaliser parameter must be `self`" syn_assert!(
); pat_ident(&ty.pat)? == "self",
lua.params[0],
"finaliser parameter must be `self`"
);
}
_ => syn_error!(lua.params[0], "finaliser parameter must be `self`"),
}
let params = &lua.params; let params = &lua.params;
let body = &lua.body; let body = &lua.body;