From 709de8746b7a48484a611260679a0303feb86587 Mon Sep 17 00:00:00 2001 From: Jovan Gerodetti Date: Fri, 7 Nov 2025 00:56:13 +0100 Subject: [PATCH] __are_oneditor_fields_initalized needs explicit usage of Singleton trait --- godot-macros/src/class/derive_godot_class.rs | 2 +- godot-macros/src/lib.rs | 5 ++++- itest/rust/src/object_tests/oneditor_test.rs | 2 +- itest/rust/src/object_tests/property_test.rs | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/godot-macros/src/class/derive_godot_class.rs b/godot-macros/src/class/derive_godot_class.rs index 532fe7660..e2e0db80c 100644 --- a/godot-macros/src/class/derive_godot_class.rs +++ b/godot-macros/src/class/derive_godot_class.rs @@ -369,7 +369,7 @@ fn make_onready_init(all_fields: &[Field]) -> TokenStream { fn make_oneditor_panic_inits(class_name: &Ident, all_fields: &[Field]) -> TokenStream { // Despite its name OnEditor shouldn't panic in the editor for tool classes. - let is_in_editor = quote! { ::godot::classes::Engine::singleton().is_editor_hint() }; + let is_in_editor = quote! { <::godot::classes::Engine as ::godot::obj::Singleton>::singleton().is_editor_hint() }; let are_all_oneditor_fields_valid = quote! { are_all_oneditor_fields_valid }; diff --git a/godot-macros/src/lib.rs b/godot-macros/src/lib.rs index 963eec3d4..0c591e06c 100644 --- a/godot-macros/src/lib.rs +++ b/godot-macros/src/lib.rs @@ -231,12 +231,15 @@ use crate::util::{bail, ident, KvParser}; /// [`Export`](../register/property/trait.Export.html): /// /// ``` -/// # use godot::prelude::*; +/// # use godot::prelude::{GodotClass, Node3D, Gd, OnEditor}; /// #[derive(GodotClass)] /// # #[class(init)] /// struct MyStruct { /// #[export] /// my_field: i64, +/// +/// #[export] +/// child: OnEditor>, /// } /// ``` /// diff --git a/itest/rust/src/object_tests/oneditor_test.rs b/itest/rust/src/object_tests/oneditor_test.rs index 537287f32..1a7822f0d 100644 --- a/itest/rust/src/object_tests/oneditor_test.rs +++ b/itest/rust/src/object_tests/oneditor_test.rs @@ -7,7 +7,7 @@ use godot::classes::notify::NodeNotification; use godot::classes::{INode, Node, RefCounted}; -use godot::obj::{Gd, NewAlloc, OnEditor, Singleton}; +use godot::obj::{Gd, NewAlloc, OnEditor}; use godot::register::{godot_api, GodotClass}; use crate::framework::{expect_panic, itest}; diff --git a/itest/rust/src/object_tests/property_test.rs b/itest/rust/src/object_tests/property_test.rs index e13b18848..ce8fa44f6 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, Singleton}; +use godot::obj::{Base, EngineBitfield, EngineEnum, Gd, NewAlloc, NewGd, OnEditor}; use godot::register::property::{Export, Var}; use godot::register::{godot_api, Export, GodotClass, GodotConvert, Var}; use godot::test::itest;