From 814ffc560ff4d6a096778518be6baeba59723508 Mon Sep 17 00:00:00 2001 From: barry3406 Date: Thu, 9 Apr 2026 22:48:05 -0700 Subject: [PATCH] fix(macros-core): update unstable proc_macro APIs for recent nightly The unstable proc_macro tracking APIs were restructured in rust-lang/rust#149400: - modules `tracked_env` and `tracked_path` were merged into a single module `tracked` - `proc_macro::tracked_env::var` -> `proc_macro::tracked::env_var` - `proc_macro::tracked_path::path` -> `proc_macro::tracked::path` - features `track_path` -> `proc_macro_tracked_path` (+ `proc_macro_tracked_env`) Building with --cfg=sqlx_macros_unstable on recent nightly fails because of the renames and because `extern crate proc_macro;` was only declared in `migrate.rs`, leaving `lib.rs` and `query/cache.rs` without the crate in scope. Move the gated `extern crate proc_macro;` to the crate root, drop the duplicate from migrate.rs, and update the API call sites and the clippy.toml reason field. Fixes #4150 --- sqlx-macros-core/clippy.toml | 2 +- sqlx-macros-core/src/lib.rs | 7 +++++-- sqlx-macros-core/src/migrate.rs | 5 +---- sqlx-macros-core/src/query/cache.rs | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sqlx-macros-core/clippy.toml b/sqlx-macros-core/clippy.toml index f303803661..0c0f4fe996 100644 --- a/sqlx-macros-core/clippy.toml +++ b/sqlx-macros-core/clippy.toml @@ -1,3 +1,3 @@ [[disallowed-methods]] path = "std::env::var" -reason = "use `crate::env()` instead, which optionally calls `proc_macro::tracked_env::var()`" +reason = "use `crate::env()` instead, which optionally calls `proc_macro::tracked::env_var()`" diff --git a/sqlx-macros-core/src/lib.rs b/sqlx-macros-core/src/lib.rs index 7722bf2e02..db6586200f 100644 --- a/sqlx-macros-core/src/lib.rs +++ b/sqlx-macros-core/src/lib.rs @@ -16,9 +16,12 @@ #![cfg_attr( any(sqlx_macros_unstable, procmacro2_semver_exempt), - feature(track_path) + feature(proc_macro_tracked_path, proc_macro_tracked_env) )] +#[cfg(any(sqlx_macros_unstable, procmacro2_semver_exempt))] +extern crate proc_macro; + use cfg_if::cfg_if; use std::path::PathBuf; @@ -96,7 +99,7 @@ pub fn env_opt(var: &str) -> Result> { use std::env::VarError; #[cfg(any(sqlx_macros_unstable, procmacro2_semver_exempt))] - let res: Result = proc_macro::tracked_env::var(var); + let res: Result = proc_macro::tracked::env_var(var); #[cfg(not(any(sqlx_macros_unstable, procmacro2_semver_exempt)))] let res: Result = std::env::var(var); diff --git a/sqlx-macros-core/src/migrate.rs b/sqlx-macros-core/src/migrate.rs index b855703c22..6ef1582093 100644 --- a/sqlx-macros-core/src/migrate.rs +++ b/sqlx-macros-core/src/migrate.rs @@ -1,6 +1,3 @@ -#[cfg(any(sqlx_macros_unstable, procmacro2_semver_exempt))] -extern crate proc_macro; - use std::path::{Path, PathBuf}; use proc_macro2::{Span, TokenStream}; @@ -132,7 +129,7 @@ pub fn expand_with_path(config: &Config, path: &Path) -> crate::Result