From 4a587ca1c598b0afa3ac74972fb6fcea3788493d Mon Sep 17 00:00:00 2001 From: kyren Date: Sun, 16 Sep 2018 19:54:58 -0400 Subject: [PATCH] Add compilefail test for Scope::create_nonstatic_userdata --- tests/compile-fail/scope_userdata_borrow.rs | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/compile-fail/scope_userdata_borrow.rs diff --git a/tests/compile-fail/scope_userdata_borrow.rs b/tests/compile-fail/scope_userdata_borrow.rs new file mode 100644 index 0000000..7d94e04 --- /dev/null +++ b/tests/compile-fail/scope_userdata_borrow.rs @@ -0,0 +1,24 @@ +extern crate rlua; + +use rlua::*; + +fn main() { + let lua = Lua::new(); + let globals = lua.globals(); + + // Should not allow userdata borrow to outlive lifetime of AnyUserData handle + struct MyUserData<'a>(&'a i32); + impl<'a> UserData for MyUserData<'a> {}; + + let igood = 1; + + let lua = Lua::new(); + lua.scope(|scope| { + let ugood = scope.create_nonstatic_userdata(MyUserData(&igood)).unwrap(); + let ubad = { + let ibad = 42; + scope.create_nonstatic_userdata(MyUserData(&ibad)).unwrap(); + //~^ error: `ibad` does not live long enough + }; + }); +}