Replace failure with thiserror

This commit is contained in:
Minseong Jang
2022-01-25 09:14:55 +09:00
parent 13f491642b
commit 724ffd2e6f
4 changed files with 33 additions and 117 deletions

123
Cargo.lock generated
View File

@@ -2,21 +2,6 @@
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3 version = 3
[[package]]
name = "addr2line"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]] [[package]]
name = "atty" name = "atty"
version = "0.2.14" version = "0.2.14"
@@ -34,33 +19,12 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "backtrace"
version = "0.3.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6"
dependencies = [
"addr2line",
"cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "cc"
version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "1.0.0" version = "1.0.0"
@@ -103,28 +67,6 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]]
name = "failure"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
dependencies = [
"backtrace",
"failure_derive",
]
[[package]]
name = "failure_derive"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
"proc-macro2",
"quote",
"syn",
"synstructure",
]
[[package]] [[package]]
name = "fastrand" name = "fastrand"
version = "1.6.0" version = "1.6.0"
@@ -145,12 +87,6 @@ dependencies = [
"wasi", "wasi",
] ]
[[package]]
name = "gimli"
version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.11.2" version = "0.11.2"
@@ -211,7 +147,6 @@ name = "kecc"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"clap", "clap",
"failure",
"hexf-parse", "hexf-parse",
"itertools", "itertools",
"lang-c", "lang-c",
@@ -219,6 +154,7 @@ dependencies = [
"peg", "peg",
"rand", "rand",
"tempfile", "tempfile",
"thiserror",
"wait-timeout", "wait-timeout",
] ]
@@ -246,16 +182,6 @@ version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
[[package]]
name = "miniz_oxide"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
"adler",
"autocfg",
]
[[package]] [[package]]
name = "num-traits" name = "num-traits"
version = "0.2.14" version = "0.2.14"
@@ -265,15 +191,6 @@ dependencies = [
"autocfg", "autocfg",
] ]
[[package]]
name = "object"
version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "ordered-float" name = "ordered-float"
version = "2.10.0" version = "2.10.0"
@@ -425,12 +342,6 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "rustc-demangle"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.10.0" version = "0.10.0"
@@ -448,18 +359,6 @@ dependencies = [
"unicode-xid", "unicode-xid",
] ]
[[package]]
name = "synstructure"
version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
"proc-macro2",
"quote",
"syn",
"unicode-xid",
]
[[package]] [[package]]
name = "tempfile" name = "tempfile"
version = "3.3.0" version = "3.3.0"
@@ -489,6 +388,26 @@ version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
[[package]]
name = "thiserror"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "unicode-xid" name = "unicode-xid"
version = "0.2.2" version = "0.2.2"

View File

@@ -30,9 +30,9 @@ build-bin = ["clap"]
[dependencies] [dependencies]
clap = { version = "3.0.10", features = ["derive"], optional = true } clap = { version = "3.0.10", features = ["derive"], optional = true }
thiserror = "1.0.30"
lang-c = "0.11.0" lang-c = "0.11.0"
itertools = "0.10.3" itertools = "0.10.3"
failure = "0.1.8"
tempfile = "3.3.0" tempfile = "3.3.0"
ordered-float = "2.10.0" ordered-float = "2.10.0"
hexf-parse = "0.2.1" hexf-parse = "0.2.1"

View File

@@ -1,11 +1,11 @@
use core::convert::TryFrom; use core::convert::TryFrom;
use core::fmt; use core::fmt;
use core::ops::Deref; use core::ops::Deref;
use failure::Fail;
use lang_c::ast; use lang_c::ast;
use lang_c::span::Node; use lang_c::span::Node;
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::hash::Hash; use std::hash::Hash;
use thiserror::Error;
use itertools::izip; use itertools::izip;
@@ -13,10 +13,10 @@ use crate::ir::*;
use crate::some_or; use crate::some_or;
/// TODO(document) /// TODO(document)
#[derive(Debug, PartialEq, Fail)] #[derive(Debug, PartialEq, Error)]
pub enum DtypeError { pub enum DtypeError {
/// For uncommon error /// For uncommon error
#[fail(display = "{}", message)] #[error("{message}")]
Misc { Misc {
/// TODO(document) /// TODO(document)
message: String, message: String,

View File

@@ -1,9 +1,9 @@
use core::fmt; use core::fmt;
use core::iter; use core::iter;
use core::mem; use core::mem;
use failure::Fail;
use ordered_float::OrderedFloat; use ordered_float::OrderedFloat;
use std::collections::HashMap; use std::collections::HashMap;
use thiserror::Error;
use itertools::izip; use itertools::izip;
@@ -301,20 +301,17 @@ impl Value {
} }
} }
#[derive(Debug, PartialEq, Fail)] #[derive(Debug, PartialEq, Error)]
pub enum InterpreterError { pub enum InterpreterError {
#[fail(display = "current block is unreachable")] #[error("current block is unreachable")]
Unreachable, Unreachable,
#[fail(display = "ir has no main function")] #[error("ir has no main function")]
NoMainFunction, NoMainFunction,
#[fail(display = "ir has no function definition of {} function", func_name)] #[error("ir has no function definition of {} function", func_name)]
NoFunctionDefinition { func_name: String }, NoFunctionDefinition { func_name: String },
#[fail( #[error("ir has no structure definition of {struct_name} structure")]
display = "ir has no structure definition of {} structure",
struct_name
)]
NoStructureDefinition { struct_name: String }, NoStructureDefinition { struct_name: String },
#[fail(display = "{}:{} / {}", func_name, pc, msg)] #[error("{func_name}:{pc} / {msg}")]
Misc { Misc {
func_name: String, func_name: String,
pc: Pc, pc: Pc,