Skip to content

Commit 2b5e2fd

Browse files
committed
chore: fix build when procmacro2_semver_exempt cfg is enabled
1 parent 0accee9 commit 2b5e2fd

File tree

1 file changed

+12
-5
lines changed
  • sqlx-macros-core/src/query

1 file changed

+12
-5
lines changed

sqlx-macros-core/src/query/mod.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#[cfg(procmacro2_semver_exempt)]
22
use std::collections::HashSet;
33
use std::collections::{hash_map, HashMap};
4+
use std::env::VarError;
45
use std::hash::{BuildHasherDefault, DefaultHasher};
56
use std::path::{Path, PathBuf};
67
use std::sync::{Arc, LazyLock, Mutex};
@@ -430,17 +431,23 @@ fn env(name: &str) -> Result<String, std::env::VarError> {
430431
let tracked_value = if TRACKED_ENV_VARS.lock().unwrap().insert(name.to_string()) {
431432
// Avoid tracking the same env var multiple times, which would undesirably modify
432433
// build system state and thus behavior in case we change var values.
433-
proc_macro::tracked_env::var(name)
434+
Some(proc_macro::tracked_env::var(name))
434435
} else {
435436
None
436437
};
437438
#[cfg(not(procmacro2_semver_exempt))]
438439
let tracked_value = None;
439440

440-
tracked_value
441-
.or_else(|| std::env::var(name).ok())
442-
.or_else(|| LOADED_ENV_VARS.lock().unwrap().get(name).cloned())
443-
.ok_or(std::env::VarError::NotPresent)
441+
match tracked_value.map_or_else(|| std::env::var(name), |var| var) {
442+
Ok(v) => Ok(v),
443+
Err(VarError::NotPresent) => LOADED_ENV_VARS
444+
.lock()
445+
.unwrap()
446+
.get(name)
447+
.cloned()
448+
.ok_or(VarError::NotPresent),
449+
Err(e) => Err(e),
450+
}
444451
}
445452

446453
/// Load configuration environment variables from a `.env` file, without overriding existing

0 commit comments

Comments
 (0)