From aaff4802d53d7d44928c24c1e44b9769d0cca9ab Mon Sep 17 00:00:00 2001 From: Jan Haller Date: Mon, 24 Nov 2025 19:43:29 +0100 Subject: [PATCH 1/2] Remove unnecessary `.ord()` calls for enums/bitfields --- .../object_tests/property_template_test.rs | 10 ++++---- itest/rust/src/object_tests/property_test.rs | 24 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/itest/rust/src/object_tests/property_template_test.rs b/itest/rust/src/object_tests/property_template_test.rs index 69d9957f7..cfa822134 100644 --- a/itest/rust/src/object_tests/property_template_test.rs +++ b/itest/rust/src/object_tests/property_template_test.rs @@ -56,19 +56,19 @@ fn property_template_test(ctx: &TestContext) { continue; }; - let mut rust_usage = rust_prop.at("usage").to::(); + let mut rust_usage = rust_prop.at("usage").to::(); // The GDSscript variables are script variables, and so have `PROPERTY_USAGE_SCRIPT_VARIABLE` set. // Before 4.3, `PROPERTY_USAGE_SCRIPT_VARIABLE` did the same thing as `PROPERTY_USAGE_STORAGE` and // so GDScript didn't set both if it didn't need to. if GdextBuild::before_api("4.3") { - if rust_usage == PropertyUsageFlags::STORAGE.ord() as i64 { - rust_usage = PropertyUsageFlags::SCRIPT_VARIABLE.ord() as i64 + if rust_usage == PropertyUsageFlags::STORAGE { + rust_usage = PropertyUsageFlags::SCRIPT_VARIABLE } else { - rust_usage |= PropertyUsageFlags::SCRIPT_VARIABLE.ord() as i64; + rust_usage |= PropertyUsageFlags::SCRIPT_VARIABLE; } } else { - rust_usage |= PropertyUsageFlags::SCRIPT_VARIABLE.ord() as i64; + rust_usage |= PropertyUsageFlags::SCRIPT_VARIABLE; } rust_prop.set("usage", rust_usage); diff --git a/itest/rust/src/object_tests/property_test.rs b/itest/rust/src/object_tests/property_test.rs index ce8fa44f6..b506e10a9 100644 --- a/itest/rust/src/object_tests/property_test.rs +++ b/itest/rust/src/object_tests/property_test.rs @@ -11,7 +11,7 @@ use godot::builtin::{ use godot::classes::{INode, IRefCounted, Node, Object, RefCounted, Resource, Texture}; use godot::global::{PropertyHint, PropertyUsageFlags}; use godot::meta::{GodotConvert, PropertyHintInfo, ToGodot}; -use godot::obj::{Base, EngineBitfield, EngineEnum, Gd, NewAlloc, NewGd, OnEditor}; +use godot::obj::{Base, Gd, NewAlloc, NewGd, OnEditor}; use godot::register::property::{Export, Var}; use godot::register::{godot_api, Export, GodotClass, GodotConvert, Var}; use godot::test::itest; @@ -454,10 +454,10 @@ fn derive_export() { .unwrap(); // `class_name` should be empty for non-Object variants. check_property(&property, "class_name", ""); - check_property(&property, "type", VariantType::INT.ord()); - check_property(&property, "hint", PropertyHint::ENUM.ord()); + check_property(&property, "type", VariantType::INT); + check_property(&property, "hint", PropertyHint::ENUM); check_property(&property, "hint_string", "A:0,B:1,C:2"); - check_property(&property, "usage", PropertyUsageFlags::DEFAULT.ord()); + check_property(&property, "usage", PropertyUsageFlags::DEFAULT); } #[derive(GodotClass)] @@ -489,13 +489,13 @@ fn export_resource() { .find(|c| c.get_or_nil("name") == "my_resource".to_variant()) .unwrap(); check_property(&property, "class_name", "CustomResource"); - check_property(&property, "type", VariantType::OBJECT.ord()); - check_property(&property, "hint", PropertyHint::RESOURCE_TYPE.ord()); + check_property(&property, "type", VariantType::OBJECT); + check_property(&property, "hint", PropertyHint::RESOURCE_TYPE); check_property(&property, "hint_string", "CustomResource"); check_property( &property, "usage", - PropertyUsageFlags::DEFAULT.ord() | PropertyUsageFlags::EDITOR_INSTANTIATE_OBJECT.ord(), + PropertyUsageFlags::DEFAULT | PropertyUsageFlags::EDITOR_INSTANTIATE_OBJECT, ); let property = class @@ -504,10 +504,10 @@ fn export_resource() { .find(|c| c.get_or_nil("name") == "renamed_resource".to_variant()) .unwrap(); check_property(&property, "class_name", "NewNameCustomResource"); - check_property(&property, "type", VariantType::OBJECT.ord()); - check_property(&property, "hint", PropertyHint::RESOURCE_TYPE.ord()); + check_property(&property, "type", VariantType::OBJECT); + check_property(&property, "hint", PropertyHint::RESOURCE_TYPE); check_property(&property, "hint_string", "NewNameCustomResource"); - check_property(&property, "usage", PropertyUsageFlags::DEFAULT.ord()); + check_property(&property, "usage", PropertyUsageFlags::DEFAULT); class.free(); } @@ -551,9 +551,9 @@ fn override_export() { .find(|c| c.get_or_nil("name") == "resource".to_variant()) .unwrap(); - check_property(&property, "hint", PropertyHint::GLOBAL_FILE.ord()); + check_property(&property, "hint", PropertyHint::GLOBAL_FILE); check_property(&property, "hint_string", "SomethingRandom"); - check_property(&property, "usage", PropertyUsageFlags::GROUP.ord()); + check_property(&property, "usage", PropertyUsageFlags::GROUP); } fn check_property(property: &Dictionary, key: &str, expected: impl ToGodot) { From 937686dafba46361ee8c5d5c9cf7c556c3a055aa Mon Sep 17 00:00:00 2001 From: Jan Haller Date: Mon, 24 Nov 2025 22:59:30 +0100 Subject: [PATCH 2/2] Revert "Temporarily disable GString::find() itest due to upstream bug" This reverts commit cd1019df22a3981298ef0bcec19651bac5ea1522. --- itest/rust/src/builtin_tests/string/gstring_test.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/itest/rust/src/builtin_tests/string/gstring_test.rs b/itest/rust/src/builtin_tests/string/gstring_test.rs index ce9840a53..2b7744fca 100644 --- a/itest/rust/src/builtin_tests/string/gstring_test.rs +++ b/itest/rust/src/builtin_tests/string/gstring_test.rs @@ -145,8 +145,7 @@ fn string_substr() { assert_eq!(string.substr(2..=4), "abl".into()); } -// TODO(v0.5): enable after https://github.com/godotengine/godot/pull/113044 is merged. -#[itest(skip)] +#[itest] fn gstring_find() { let s = GString::from("Hello World");