diff options
Diffstat (limited to 'vendor/thiserror/build/probe.rs')
-rw-r--r-- | vendor/thiserror/build/probe.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/thiserror/build/probe.rs b/vendor/thiserror/build/probe.rs new file mode 100644 index 0000000..0dce6f5 --- /dev/null +++ b/vendor/thiserror/build/probe.rs @@ -0,0 +1,32 @@ +// This code exercises the surface area that we expect of the Error generic +// member access API. If the current toolchain is able to compile it, then +// thiserror is able to provide backtrace support. + +#![feature(error_generic_member_access)] + +use std::error::{Error, Request}; +use std::fmt::{self, Debug, Display}; + +struct MyError(Thing); +struct Thing; + +impl Debug for MyError { + fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result { + unimplemented!() + } +} + +impl Display for MyError { + fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result { + unimplemented!() + } +} + +impl Error for MyError { + fn provide<'a>(&'a self, request: &mut Request<'a>) { + request.provide_ref(&self.0); + } +} + +// Include in sccache cache key. +const _: Option<&str> = option_env!("RUSTC_BOOTSTRAP"); |