diff --git a/crates/backend/src/codegen.rs b/crates/backend/src/codegen.rs index 8ae6b738c00..95198784ac2 100644 --- a/crates/backend/src/codegen.rs +++ b/crates/backend/src/codegen.rs @@ -810,9 +810,11 @@ impl TryToTokens for ast::Export { if self.function.r#async { (quote_spanned! { self.function.name_span => - #[deprecated(note = "async constructors are not supported")] - fn constructor() {} - constructor(); + const _: () = { + #[deprecated(note = "async constructors produce invalid TS code and support will be removed in the future")] + const fn constructor() {} + constructor(); + }; }) .to_tokens(into); } diff --git a/crates/macro/ui-tests/unsupported-options.stderr b/crates/macro/ui-tests/unsupported-options.stderr index 0ec899efad7..c9ecd30ff01 100644 --- a/crates/macro/ui-tests/unsupported-options.stderr +++ b/crates/macro/ui-tests/unsupported-options.stderr @@ -1,4 +1,4 @@ -warning: use of deprecated function `RustStruct::new::{closure#0}::constructor`: async constructors are not supported +warning: use of deprecated function `RustStruct::new::{closure#0}::_::constructor`: async constructors produce invalid TS code and support will be removed in the future --> ui-tests/unsupported-options.rs:15:18 | 15 | pub async fn new() -> Self {