Skip to content

Commit efdb11a

Browse files
committed
Simplify std_backtrace conditional code
1 parent b8a9a70 commit efdb11a

File tree

4 files changed

+19
-31
lines changed

4 files changed

+19
-31
lines changed

build.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ use std::process::{self, Command, Stdio};
1010
use std::str;
1111

1212
fn main() {
13-
let mut error_generic_member_access = false;
1413
if cfg!(feature = "std") {
1514
println!("cargo:rerun-if-changed=src/nightly.rs");
1615

16+
let error_generic_member_access;
1717
let consider_rustc_bootstrap;
1818
if compile_probe(false) {
1919
// This is a nightly or dev compiler, so it supports unstable
@@ -50,7 +50,6 @@ fn main() {
5050
}
5151

5252
if error_generic_member_access {
53-
println!("cargo:rustc-cfg=std_backtrace");
5453
println!("cargo:rustc-cfg=error_generic_member_access");
5554
}
5655

@@ -69,13 +68,6 @@ fn main() {
6968
println!("cargo:rustc-check-cfg=cfg(anyhow_no_clippy_format_args)");
7069
println!("cargo:rustc-check-cfg=cfg(anyhow_no_core_error)");
7170
println!("cargo:rustc-check-cfg=cfg(error_generic_member_access)");
72-
println!("cargo:rustc-check-cfg=cfg(std_backtrace)");
73-
}
74-
75-
if !error_generic_member_access && cfg!(feature = "std") {
76-
// std::backtrace::Backtrace
77-
// https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html#stabilized-apis
78-
println!("cargo:rustc-cfg=std_backtrace");
7971
}
8072

8173
if rustc < 81 {

src/backtrace.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
#[cfg(std_backtrace)]
1+
#[cfg(feature = "std")]
22
pub(crate) use std::backtrace::{Backtrace, BacktraceStatus};
33

4-
#[cfg(not(std_backtrace))]
4+
#[cfg(not(feature = "std"))]
55
pub(crate) enum Backtrace {}
66

7-
#[cfg(std_backtrace)]
7+
#[cfg(feature = "std")]
88
macro_rules! backtrace {
99
() => {
1010
Some(crate::backtrace::Backtrace::capture())
1111
};
1212
}
1313

14-
#[cfg(not(std_backtrace))]
14+
#[cfg(not(feature = "std"))]
1515
macro_rules! backtrace {
1616
() => {
1717
None
@@ -28,18 +28,14 @@ macro_rules! backtrace_if_absent {
2828
};
2929
}
3030

31-
#[cfg(all(
32-
any(feature = "std", not(anyhow_no_core_error)),
33-
not(error_generic_member_access),
34-
std_backtrace
35-
))]
31+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
3632
macro_rules! backtrace_if_absent {
3733
($err:expr) => {
3834
backtrace!()
3935
};
4036
}
4137

42-
#[cfg(all(any(feature = "std", not(anyhow_no_core_error)), not(std_backtrace)))]
38+
#[cfg(all(not(anyhow_no_core_error), not(feature = "std")))]
4339
macro_rules! backtrace_if_absent {
4440
($err:expr) => {
4541
None

src/error.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl Error {
155155
object_reallocate_boxed: object_reallocate_boxed::<E>,
156156
object_downcast: object_downcast::<E>,
157157
object_drop_rest: object_drop_front::<E>,
158-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
158+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
159159
object_backtrace: no_backtrace,
160160
};
161161

@@ -179,7 +179,7 @@ impl Error {
179179
object_reallocate_boxed: object_reallocate_boxed::<MessageError<M>>,
180180
object_downcast: object_downcast::<M>,
181181
object_drop_rest: object_drop_front::<M>,
182-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
182+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
183183
object_backtrace: no_backtrace,
184184
};
185185

@@ -204,7 +204,7 @@ impl Error {
204204
object_reallocate_boxed: object_reallocate_boxed::<DisplayError<M>>,
205205
object_downcast: object_downcast::<M>,
206206
object_drop_rest: object_drop_front::<M>,
207-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
207+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
208208
object_backtrace: no_backtrace,
209209
};
210210

@@ -235,7 +235,7 @@ impl Error {
235235
object_reallocate_boxed: object_reallocate_boxed::<ContextError<C, E>>,
236236
object_downcast: context_downcast::<C, E>,
237237
object_drop_rest: context_drop_rest::<C, E>,
238-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
238+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
239239
object_backtrace: no_backtrace,
240240
};
241241

@@ -260,7 +260,7 @@ impl Error {
260260
object_reallocate_boxed: object_reallocate_boxed::<BoxedError>,
261261
object_downcast: object_downcast::<Box<dyn StdError + Send + Sync>>,
262262
object_drop_rest: object_drop_front::<Box<dyn StdError + Send + Sync>>,
263-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
263+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
264264
object_backtrace: no_backtrace,
265265
};
266266

@@ -372,7 +372,7 @@ impl Error {
372372
object_reallocate_boxed: object_reallocate_boxed::<ContextError<C, Error>>,
373373
object_downcast: context_chain_downcast::<C>,
374374
object_drop_rest: context_chain_drop_rest::<C>,
375-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
375+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
376376
object_backtrace: context_backtrace::<C>,
377377
};
378378

@@ -410,7 +410,7 @@ impl Error {
410410
/// [dependencies]
411411
/// anyhow = { version = "1.0", features = ["backtrace"] }
412412
/// ```
413-
#[cfg(std_backtrace)]
413+
#[cfg(feature = "std")]
414414
pub fn backtrace(&self) -> &std::backtrace::Backtrace {
415415
unsafe { ErrorImpl::backtrace(self.inner.by_ref()) }
416416
}
@@ -728,7 +728,7 @@ struct ErrorVTable {
728728
object_reallocate_boxed: unsafe fn(Own<ErrorImpl>) -> Box<dyn StdError + Send + Sync + 'static>,
729729
object_downcast: unsafe fn(Ref<ErrorImpl>, TypeId) -> Option<Ref<()>>,
730730
object_drop_rest: unsafe fn(Own<ErrorImpl>, TypeId),
731-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
731+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
732732
object_backtrace: unsafe fn(Ref<ErrorImpl>) -> Option<&Backtrace>,
733733
}
734734

@@ -804,7 +804,7 @@ where
804804
}
805805
}
806806

807-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
807+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
808808
fn no_backtrace(e: Ref<ErrorImpl>) -> Option<&Backtrace> {
809809
let _ = e;
810810
None
@@ -888,7 +888,7 @@ where
888888
}
889889

890890
// Safety: requires layout of *e to match ErrorImpl<ContextError<C, Error>>.
891-
#[cfg(all(not(error_generic_member_access), std_backtrace))]
891+
#[cfg(all(not(error_generic_member_access), feature = "std"))]
892892
#[allow(clippy::unnecessary_wraps)]
893893
unsafe fn context_backtrace<C>(e: Ref<ErrorImpl>) -> Option<&Backtrace>
894894
where
@@ -954,7 +954,7 @@ impl ErrorImpl {
954954
}
955955
}
956956

957-
#[cfg(std_backtrace)]
957+
#[cfg(feature = "std")]
958958
pub(crate) unsafe fn backtrace(this: Ref<Self>) -> &Backtrace {
959959
// This unwrap can only panic if the underlying error's backtrace method
960960
// is nondeterministic, which would only happen in maliciously

src/fmt.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ impl ErrorImpl {
4040
}
4141
}
4242

43-
#[cfg(std_backtrace)]
43+
#[cfg(feature = "std")]
4444
{
4545
use crate::backtrace::BacktraceStatus;
4646
use alloc::string::ToString;

0 commit comments

Comments
 (0)