use #[track_caller] and Location

This commit is contained in:
Harald Hoyer 2020-08-28 16:45:24 +02:00
parent e2815321bc
commit 356335e807
Signed by: harald
GPG key ID: 900F3C4971086004
21 changed files with 515 additions and 548 deletions

View file

@ -1,4 +1,4 @@
use chainerror::*;
use chainerror::prelude::v1::*;
use std::error::Error;
use std::io;
@ -6,13 +6,14 @@ use std::io;
#[test]
fn test_iter() -> Result<(), Box<dyn Error + Send + Sync>> {
use std::fmt::Write;
let err = io::Error::from(io::ErrorKind::NotFound);
let err = cherr!(err, "1");
let err = cherr!(err, "2");
let err = cherr!(err, "3");
let err = cherr!(err, "4");
let err = cherr!(err, "5");
let err = cherr!(err, "6");
let err: Result<(), _> = Err(io::Error::from(io::ErrorKind::NotFound));
let err = err.cherr("1");
let err = err.cherr("2");
let err = err.cherr("3");
let err = err.cherr("4");
let err = err.cherr("5");
let err = err.cherr("6");
let err = err.err().unwrap();
let mut res = String::new();
@ -34,13 +35,14 @@ fn test_iter() -> Result<(), Box<dyn Error + Send + Sync>> {
#[cfg(feature = "display-cause")]
#[test]
fn test_iter() -> Result<(), Box<dyn Error + Send + Sync>> {
let err = io::Error::from(io::ErrorKind::NotFound);
let err = cherr!(err, "1");
let err = cherr!(err, "2");
let err = cherr!(err, "3");
let err = cherr!(err, "4");
let err = cherr!(err, "5");
let err = cherr!(err, "6");
let err: Result<(), _> = Err(io::Error::from(io::ErrorKind::NotFound));
let err = err.cherr("1");
let err = err.cherr("2");
let err = err.cherr("3");
let err = err.cherr("4");
let err = err.cherr("5");
let err = err.cherr("6");
let err = err.err().unwrap();
let res = err.to_string();
@ -58,13 +60,14 @@ fn test_iter() -> Result<(), Box<dyn Error + Send + Sync>> {
#[test]
fn test_find_cause() -> Result<(), Box<dyn Error + Send + Sync>> {
let err = io::Error::from(io::ErrorKind::NotFound);
let err = cherr!(err, "1");
let err = cherr!(err, "2");
let err = cherr!(err, "3");
let err = cherr!(err, "4");
let err = cherr!(err, "5");
let err = cherr!(err, "6");
let err: Result<(), _> = Err(io::Error::from(io::ErrorKind::NotFound));
let err = err.cherr("1");
let err = err.cherr("2");
let err = err.cherr("3");
let err = err.cherr("4");
let err = err.cherr("5");
let err = err.cherr("6");
let err = err.err().unwrap();
let io_error: Option<&io::Error> = err.find_cause::<io::Error>();
@ -75,13 +78,14 @@ fn test_find_cause() -> Result<(), Box<dyn Error + Send + Sync>> {
#[test]
fn test_root_cause() -> Result<(), Box<dyn Error + Send + Sync>> {
let err = io::Error::from(io::ErrorKind::NotFound);
let err = cherr!(err, "1");
let err = cherr!(err, "2");
let err = cherr!(err, "3");
let err = cherr!(err, "4");
let err = cherr!(err, "5");
let err = cherr!(err, "6");
let err: Result<(), _> = Err(io::Error::from(io::ErrorKind::NotFound));
let err = err.cherr("1");
let err = err.cherr("2");
let err = err.cherr("3");
let err = err.cherr("4");
let err = err.cherr("5");
let err = err.cherr("6");
let err = err.err().unwrap();
let err: Option<&(dyn std::error::Error + 'static)> = err.root_cause();
let io_error: Option<&io::Error> = err.and_then(Error::downcast_ref::<io::Error>);