From 7fe6e05da3b39fdef4ec5b2ec2ee667694234098 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Thu, 11 Jan 2024 15:21:13 -0600 Subject: [PATCH] remove trybuild now that core is more safe --- packages/core/Cargo.toml | 1 - packages/core/compile_tests/props_safety.rs | 26 ------------------- .../core/compile_tests/props_safety.stderr | 20 -------------- .../props_safety_temporary_values.rs | 18 ------------- .../props_safety_temporary_values.stderr | 12 --------- packages/core/src/properties.rs | 8 ------ 6 files changed, 85 deletions(-) delete mode 100644 packages/core/compile_tests/props_safety.rs delete mode 100644 packages/core/compile_tests/props_safety.stderr delete mode 100644 packages/core/compile_tests/props_safety_temporary_values.rs delete mode 100644 packages/core/compile_tests/props_safety_temporary_values.stderr diff --git a/packages/core/Cargo.toml b/packages/core/Cargo.toml index 23f1f66f7..13dd69ec0 100644 --- a/packages/core/Cargo.toml +++ b/packages/core/Cargo.toml @@ -38,7 +38,6 @@ dioxus-html = { workspace = true, features = ["serialize"] } pretty_assertions = "1.3.0" rand = "0.8.5" dioxus-ssr = { workspace = true } -trybuild = "1.0" [features] default = [] diff --git a/packages/core/compile_tests/props_safety.rs b/packages/core/compile_tests/props_safety.rs deleted file mode 100644 index 312952225..000000000 --- a/packages/core/compile_tests/props_safety.rs +++ /dev/null @@ -1,26 +0,0 @@ -use dioxus::prelude::*; - -fn main() {} - -fn app() -> Element { - let count: &RefCell> = cx.use_hook(|| RefCell::new(Vec::new())); - - render! { unsafe_child_component { borrowed: count } } -} - -#[derive(Props)] -struct Testing<'a> { - borrowed: &'a RefCell>, -} - -fn unsafe_child_component<'a>(cx: Testing) -> Element { - let Testing { borrowed } = cx; - let borrowed_temporary_data = - cx.use_hook(|| String::from("This data is only valid for the lifetime of the child")); - - borrowed - .borrow_mut() - .push(render! {"{borrowed_temporary_data}"}); - - render! { div { "Hello, world!" } } -} diff --git a/packages/core/compile_tests/props_safety.stderr b/packages/core/compile_tests/props_safety.stderr deleted file mode 100644 index 5fdd7825f..000000000 --- a/packages/core/compile_tests/props_safety.stderr +++ /dev/null @@ -1,20 +0,0 @@ -error[E0521]: borrowed data escapes outside of function - --> compile_tests/props_safety.rs:8:5 - | -5 | fn app() -> Element { - | -- - | | - | `cx` is a reference that is only valid in the function body - | has type `&'1 Scoped<'1>` -... -8 | / render! { -9 | | unsafe_child_component { -10 | | borrowed: count -11 | | } -12 | | } - | | ^ - | | | - | |_____`cx` escapes the function body here - | argument requires that `'1` must outlive `'static` - | - = note: this error originates in the macro `render` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/packages/core/compile_tests/props_safety_temporary_values.rs b/packages/core/compile_tests/props_safety_temporary_values.rs deleted file mode 100644 index 103e333cf..000000000 --- a/packages/core/compile_tests/props_safety_temporary_values.rs +++ /dev/null @@ -1,18 +0,0 @@ -use dioxus::prelude::*; - -fn main() {} - -fn app() -> Element { - let count = vec![1, 2, 3]; - - render! { unsafe_child_component { borrowed: &count } } -} - -#[derive(Props)] -struct Testing<'a> { - borrowed: &'a Vec, -} - -fn unsafe_child_component<'a>(cx: Testing) -> Element { - render! { div { "{cx.borrowed:?}" } } -} diff --git a/packages/core/compile_tests/props_safety_temporary_values.stderr b/packages/core/compile_tests/props_safety_temporary_values.stderr deleted file mode 100644 index c1ef443c9..000000000 --- a/packages/core/compile_tests/props_safety_temporary_values.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0515]: cannot return value referencing local variable `count` - --> compile_tests/props_safety_temporary_values.rs:8:5 - | -8 | / render! { -9 | | unsafe_child_component { -10 | | borrowed: &count - | | ------ `count` is borrowed here -11 | | } -12 | | } - | |_____^ returns a value referencing data owned by the current function - | - = note: this error originates in the macro `render` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/packages/core/src/properties.rs b/packages/core/src/properties.rs index 010da9510..3694ae676 100644 --- a/packages/core/src/properties.rs +++ b/packages/core/src/properties.rs @@ -112,11 +112,3 @@ fn test_empty_builder() { let builder = fc_to_builder(app2); builder.build(); } - -#[cfg(not(miri))] -#[test] -fn unsafe_props_fail() { - let t = trybuild::TestCases::new(); - t.compile_fail("compile_tests/props_safety.rs"); - t.compile_fail("compile_tests/props_safety_temporary_values.rs"); -}