Skip to content
This repository was archived by the owner on Nov 24, 2023. It is now read-only.

Commit 3a1dc7d

Browse files
authored
Merge pull request #184 from alexcrichton/failure
Migrate from `failure` to `anyhow`
2 parents e7241b3 + c56cb42 commit 3a1dc7d

File tree

5 files changed

+11
-28
lines changed

5 files changed

+11
-28
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ exclude = [
2020
[dependencies]
2121
serde = { version = "1.0", features = ["derive"] }
2222
serde_json = "1.0"
23-
failure = "0.1.2"
23+
anyhow = "1.0.0"
2424
log = "0.4.1"
2525

2626
[dev-dependencies]

examples/fix-json.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
use rustfix;
2-
3-
use failure::Error;
1+
use anyhow::Error;
42
use std::io::{stdin, BufReader, Read};
53
use std::{collections::HashMap, collections::HashSet, env, fs};
64

src/lib.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
#[macro_use]
44
extern crate log;
5-
#[macro_use]
6-
extern crate failure;
75
#[cfg(test)]
86
#[macro_use]
97
extern crate proptest;
@@ -12,7 +10,7 @@ use serde_json;
1210
use std::collections::HashSet;
1311
use std::ops::Range;
1412

15-
use failure::Error;
13+
use anyhow::Error;
1614

1715
pub mod diagnostics;
1816
use crate::diagnostics::{Diagnostic, DiagnosticSpan};

src/replace.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//! replacement of parts of its content, with the ability to prevent changing
33
//! the same parts multiple times.
44
5-
use failure::Error;
5+
use anyhow::{anyhow, ensure, Error};
66
use std::rc::Rc;
77

88
#[derive(Debug, Clone, PartialEq, Eq)]
@@ -133,7 +133,7 @@ impl Data {
133133
);
134134
}
135135

136-
format_err!(
136+
anyhow!(
137137
"Could not replace range {}...{} in file \
138138
-- maybe parts of it were already replaced?",
139139
from,

tests/parse_and_replace.rs

+6-19
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,16 @@
11
#![cfg(not(windows))] // TODO: should fix these tests on Windows
22

3-
use duct;
4-
use env_logger;
5-
#[macro_use]
6-
extern crate log;
7-
use rustfix;
8-
9-
#[macro_use]
10-
extern crate failure;
11-
3+
use anyhow::{anyhow, ensure, Context, Error};
4+
use log::{debug, info, warn};
5+
use rustfix::apply_suggestions;
126
use std::collections::HashSet;
137
use std::env;
148
use std::ffi::OsString;
159
use std::fs;
1610
use std::path::{Path, PathBuf};
1711
use std::process::Output;
18-
19-
use failure::{Error, ResultExt};
2012
use tempdir::TempDir;
2113

22-
use rustfix::apply_suggestions;
23-
2414
mod fixmode {
2515
pub const EVERYTHING: &str = "yolo";
2616
pub const EDITION: &str = "edition";
@@ -67,7 +57,7 @@ fn compile_and_get_json_errors(file: &Path, mode: &str) -> Result<String, Error>
6757

6858
match res.status.code() {
6959
Some(0) | Some(1) | Some(101) => Ok(stderr),
70-
_ => Err(format_err!(
60+
_ => Err(anyhow!(
7161
"failed with status {:?}: {}",
7262
res.status.code(),
7363
stderr
@@ -86,7 +76,7 @@ fn compiles_without_errors(file: &Path, mode: &str) -> Result<(), Error> {
8676
file,
8777
String::from_utf8(res.stderr)?
8878
);
89-
Err(format_err!(
79+
Err(anyhow!(
9080
"failed with status {:?} (`env RUST_LOG=parse_and_replace=info` for more info)",
9181
res.status.code(),
9282
))
@@ -226,10 +216,7 @@ fn assert_fixtures(dir: &str, mode: &str) {
226216
for file in &files {
227217
if let Err(err) = test_rustfix_with_file(file, mode) {
228218
println!("failed: {}", file.display());
229-
warn!("{}", err);
230-
for cause in err.iter_chain().skip(1) {
231-
info!("\tcaused by: {}", cause);
232-
}
219+
warn!("{:?}", err);
233220
failures += 1;
234221
}
235222
info!("passed: {:?}", file);

0 commit comments

Comments
 (0)