diff --git a/crates/luaffi_impl/src/metatype.rs b/crates/luaffi_impl/src/metatype.rs index b63425b..ca2eb5c 100644 --- a/crates/luaffi_impl/src/metatype.rs +++ b/crates/luaffi_impl/src/metatype.rs @@ -745,11 +745,17 @@ fn inject_merged_drop(registry: &mut Registry, lua: Option<&LuaFunction>) -> Res "finaliser must take exactly one parameter" ); - syn_assert!( - pat_ident(&lua.params[0])? == "self", - lua.params[0], - "finaliser parameter must be `self`" - ); + match lua.params[0] { + // should be `self: cdata` PatType + Pat::Type(ref ty) => { + 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 body = &lua.body;