Fixed unsound errors (#1143)
This commit is contained in:
parent
51a2213fcf
commit
af0dd5ef32
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -2307,9 +2307,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syntect"
|
name = "syntect"
|
||||||
version = "4.3.0"
|
version = "4.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b57a45fdcf4891bc79f635be5c559210a4cfa464891f969724944c713282eedb"
|
checksum = "4e3978df05b5850c839a6b352d3c35ce0478944a4be689be826b53cf75363e88"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode",
|
"bincode",
|
||||||
"bitflags",
|
"bitflags",
|
||||||
|
|
|
@ -8,4 +8,4 @@ edition = "2018"
|
||||||
tera = "1"
|
tera = "1"
|
||||||
toml = "0.5"
|
toml = "0.5"
|
||||||
image = "0.23"
|
image = "0.23"
|
||||||
syntect = "4.1"
|
syntect = "4.4"
|
||||||
|
|
|
@ -17,22 +17,19 @@ pub enum ErrorKind {
|
||||||
pub struct Error {
|
pub struct Error {
|
||||||
/// Kind of error
|
/// Kind of error
|
||||||
pub kind: ErrorKind,
|
pub kind: ErrorKind,
|
||||||
pub source: Option<Box<dyn StdError>>,
|
pub source: Option<Box<dyn StdError + Send + Sync>>,
|
||||||
}
|
}
|
||||||
unsafe impl Sync for Error {}
|
|
||||||
unsafe impl Send for Error {}
|
|
||||||
|
|
||||||
impl StdError for Error {
|
impl StdError for Error {
|
||||||
fn source(&self) -> Option<&(dyn StdError + 'static)> {
|
fn source(&self) -> Option<&(dyn StdError + 'static)> {
|
||||||
let mut source = self.source.as_ref().map(|c| &**c);
|
match self.source {
|
||||||
if source.is_none() {
|
Some(ref err) => Some(&**err),
|
||||||
if let ErrorKind::Tera(ref err) = self.kind {
|
None => match self.kind {
|
||||||
source = err.source();
|
ErrorKind::Tera(ref err) => err.source(),
|
||||||
|
_ => None,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for Error {
|
impl fmt::Display for Error {
|
||||||
|
@ -55,7 +52,7 @@ impl Error {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates generic error with a cause
|
/// Creates generic error with a cause
|
||||||
pub fn chain(value: impl ToString, source: impl Into<Box<dyn StdError>>) -> Self {
|
pub fn chain(value: impl ToString, source: impl Into<Box<dyn StdError + Send + Sync>>) -> Self {
|
||||||
Self { kind: ErrorKind::Msg(value.to_string()), source: Some(source.into()) }
|
Self { kind: ErrorKind::Msg(value.to_string()), source: Some(source.into()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue