From 80ac1a99afca6c465e16b37a658169edb387525e Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Wed, 9 Aug 2023 14:20:46 -0700 Subject: [PATCH] fix miri --- examples/props_safety.rs | 68 --------------------------------- packages/core/src/properties.rs | 1 + 2 files changed, 1 insertion(+), 68 deletions(-) delete mode 100644 examples/props_safety.rs diff --git a/examples/props_safety.rs b/examples/props_safety.rs deleted file mode 100644 index 7802e75c9..000000000 --- a/examples/props_safety.rs +++ /dev/null @@ -1,68 +0,0 @@ -use dioxus::prelude::*; - -fn main() { - dioxus_desktop::launch(app); -} - -fn app(cx: Scope) -> Element { - let count: &RefCell> = cx.use_hook(|| RefCell::new(Vec::new())); - - let element = render! { - div { - "hello world!" - } - }; - - let nested_borrows = cx.use_hook(Vec::new); - nested_borrows.push("hello world!"); - - cx.render(rsx! { - // unsafe_child_component { - // borrowed: count - // } - safe_child_component { - borrowed: element - } - safe_nested_borrows { - borrowed: &**nested_borrows - } - }) -} - -#[derive(Props)] -struct NestedBorrows<'a> { - borrowed: &'a [&'a str], -} - -fn safe_nested_borrows<'a>(cx: Scope<'a, NestedBorrows<'a>>) -> Element<'a> { - render! { - div { "{cx.props.borrowed:?}" } - } -} - -#[derive(Props)] -struct Testing<'a> { - borrowed: &'a RefCell>>, -} - -fn unsafe_child_component<'a>(cx: Scope<'a, Testing<'a>>) -> Element<'a> { - let Testing { borrowed } = cx.props; - let borrowed = borrowed.borrow(); - cx.render(rsx! { - div { "Hello, world!" } - }) -} - -#[derive(Props)] -struct SafeTesting<'a> { - borrowed: Element<'a>, -} - -fn safe_child_component<'a>(cx: Scope<'a, SafeTesting<'a>>) -> Element<'a> { - let SafeTesting { borrowed } = cx.props; - cx.render(rsx! { - div { - borrowed - } - }) -} diff --git a/packages/core/src/properties.rs b/packages/core/src/properties.rs index 05f5cbea9..f754f8b68 100644 --- a/packages/core/src/properties.rs +++ b/packages/core/src/properties.rs @@ -74,6 +74,7 @@ pub fn fc_to_builder<'a, T: Properties + 'a>(_: fn(Scope<'a, T>) -> Element<'a>) T::builder() } +#[cfg(not(miri))] #[test] fn unsafe_props_fail() { let t = trybuild::TestCases::new();