Skip to content

Commit 7214f93

Browse files
committed
Warn when using old #[export] syntax
1 parent a6d479d commit 7214f93

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

gdnative-core/src/export/macros.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ macro_rules! deprecated_reference_return {
3535
() => {};
3636
}
3737

38+
#[doc(hidden)]
39+
#[macro_export]
40+
#[deprecated = "#[export] is deprecated and will be removed in the next major version. Use #[godot] instead."]
41+
macro_rules! deprecated_export_syntax {
42+
() => {};
43+
}
44+
3845
#[doc(hidden)]
3946
#[macro_export]
4047
macro_rules! godot_wrap_method_void {

gdnative-core/src/export/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ pub(crate) mod type_tag;
2626

2727
pub mod user_data;
2828

29-
#[allow(deprecated)]
30-
pub use crate::deprecated_reference_return;
3129
pub use crate::godot_wrap_method;
30+
#[allow(deprecated)]
31+
pub use crate::{deprecated_export_syntax, deprecated_reference_return};
3232
pub use class::*;
3333
pub use class_builder::*;
3434
pub use method::*;

gdnative-derive/src/methods.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,14 @@ pub(crate) fn derive_methods(item_impl: ItemImpl) -> TokenStream2 {
141141
}
142142
});
143143

144+
let warn_deprecated_export = if export_args.is_old_syntax {
145+
Some(quote_spanned!(ret_span=> ::gdnative::export::deprecated_export_syntax!();))
146+
} else {
147+
None
148+
};
149+
144150
// See gdnative-core::export::deprecated_reference_return!()
145-
let deprecated = if let syn::ReturnType::Type(_, ty) = &sig.output {
151+
let warn_deprecated_ref_return = if let syn::ReturnType::Type(_, ty) = &sig.output {
146152
if !is_deref_return && matches!(**ty, syn::Type::Reference(_)) {
147153
quote_spanned!(ret_span=> ::gdnative::export::deprecated_reference_return!();)
148154
} else {
@@ -164,7 +170,8 @@ pub(crate) fn derive_methods(item_impl: ItemImpl) -> TokenStream2 {
164170
.with_rpc_mode(#rpc)
165171
.done_stateless();
166172

167-
#deprecated
173+
#warn_deprecated_export
174+
#warn_deprecated_ref_return
168175
}
169176
)
170177
})

0 commit comments

Comments
 (0)