33 lines
831 B
Rust
33 lines
831 B
Rust
// 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");
|