about summary refs log tree commit diff
diff options
context:
space:
mode:
authorIvan Tadeu Ferreira Antunes Filho <itadeufa@gmail.com>2025-07-24 17:23:59 -0400
committerGitHub <noreply@github.com>2025-07-24 17:23:59 -0400
commit1de927c7c46444b6bdd3d508a4935b64095f696e (patch)
tree9b88d72dc3c39fc990ba8496d3dc3e2f0ef860bb
parent5d22242a3a84a55be2f648a94eecff58887547f4 (diff)
downloadrust-1de927c7c46444b6bdd3d508a4935b64095f696e.tar.gz
rust-1de927c7c46444b6bdd3d508a4935b64095f696e.zip
library/windows_targets: Fix macro expansion error in 'link' macro
A recent change altered the definition of the link! macro when the windows_raw_dylib feature is enabled, changing its syntax from pub macro {..} to pub macro($tt:tt) {..} in #143592

This change introduced a build failure with the error: "macros that expand to items must be delimited with braces or followed by a semicolon".

We add a semicolon to the line causing the issue as we also modify the non windows_raw_dylib link to make use of the link_dylib macro
-rw-r--r--library/windows_targets/src/lib.rs16
1 files changed, 3 insertions, 13 deletions
diff --git a/library/windows_targets/src/lib.rs b/library/windows_targets/src/lib.rs
index 9e82e6a7200..3446e2113dd 100644
--- a/library/windows_targets/src/lib.rs
+++ b/library/windows_targets/src/lib.rs
@@ -34,22 +34,12 @@ pub macro link_dylib {
 
 #[cfg(feature = "windows_raw_dylib")]
 pub macro link($($tt:tt)*) {
-    $crate::link_raw_dylib!($($tt)*)
+    $crate::link_raw_dylib!($($tt)*);
 }
 
 #[cfg(not(feature = "windows_raw_dylib"))]
-pub macro link {
-    ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => (
-        // Note: the windows-targets crate uses a pre-built Windows.lib import library which we don't
-        // have in this repo. So instead we always link kernel32.lib and add the rest of the import
-        // libraries below by using an empty extern block. This works because extern blocks are not
-        // connected to the library given in the #[link] attribute.
-        #[link(name = "kernel32")]
-        unsafe extern $abi {
-            $(#[link_name=$link_name])?
-            pub fn $($function)*;
-        }
-    )
+pub macro link($($tt:tt)*) {
+    $crate::link_dylib!($($tt)*);
 }
 
 #[cfg(not(feature = "windows_raw_dylib"))]