chore: cargo fmt
This commit is contained in:
@@ -2,7 +2,10 @@ use derive_more::Unwrap;
|
||||
use ecow::EcoString;
|
||||
use hashbrown::{HashMap, HashSet};
|
||||
|
||||
use crate::{error::{Error, Result}, ty::common::Const};
|
||||
use crate::{
|
||||
error::{Error, Result},
|
||||
ty::common::Const,
|
||||
};
|
||||
|
||||
use super::{Dep, Func, Ir, LoadFunc, MaybeThunk, SccAnalyzer, SccNode, Thunk};
|
||||
|
||||
@@ -107,9 +110,7 @@ impl<'a, 'env> Env<'a, 'env> {
|
||||
}
|
||||
SingleArg(arg) => {
|
||||
if arg == ident {
|
||||
return Ok(LookupResult::SingleArg {
|
||||
level: arg_level,
|
||||
});
|
||||
return Ok(LookupResult::SingleArg { level: arg_level });
|
||||
} else {
|
||||
arg_level += 1;
|
||||
}
|
||||
@@ -121,9 +122,7 @@ impl<'a, 'env> Env<'a, 'env> {
|
||||
default: default.clone(),
|
||||
});
|
||||
} else if alias.as_ref() == Some(ident) {
|
||||
return Ok(LookupResult::SingleArg {
|
||||
level: arg_level,
|
||||
});
|
||||
return Ok(LookupResult::SingleArg { level: arg_level });
|
||||
} else {
|
||||
arg_level += 1;
|
||||
}
|
||||
@@ -173,10 +172,12 @@ impl DowngradeContext {
|
||||
match this {
|
||||
Index::Thunk(idx) => {
|
||||
if dep == Dep::Thunk(idx) {
|
||||
return Err(Error::DowngradeError("infinite recursion encountered".into()))
|
||||
return Err(Error::DowngradeError(
|
||||
"infinite recursion encountered".into(),
|
||||
));
|
||||
}
|
||||
self.thunk_deps[idx].insert(dep.unwrap_thunk())
|
||||
},
|
||||
}
|
||||
Index::Func(idx) => self.func_deps[idx].insert(dep),
|
||||
};
|
||||
Ok(())
|
||||
@@ -198,11 +199,17 @@ impl DowngradeContext {
|
||||
unsafe {
|
||||
let old = std::ptr::read(func);
|
||||
match old.resolve(Index::Func(idx), self_ptr.as_mut().unwrap(), env) {
|
||||
Ok(ok) => std::ptr::write(func, ok),
|
||||
Err(err) => {
|
||||
std::ptr::write(func, Func { param: crate::ir::Param::Ident(EcoString::new()), body: super::Const { val: Const::Null }.ir().boxed() });
|
||||
return Err(err)
|
||||
},
|
||||
Ok(ok) => std::ptr::write(func, ok),
|
||||
Err(err) => {
|
||||
std::ptr::write(
|
||||
func,
|
||||
Func {
|
||||
param: crate::ir::Param::Ident(EcoString::new()),
|
||||
body: super::Const { val: Const::Null }.ir().boxed(),
|
||||
},
|
||||
);
|
||||
return Err(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
@@ -212,7 +219,7 @@ impl DowngradeContext {
|
||||
|
||||
pub fn resolve_thunk(&mut self, idx: usize, env: &Env) -> Result<()> {
|
||||
if self.thunks[idx].1 {
|
||||
return Ok(())
|
||||
return Ok(());
|
||||
}
|
||||
self.thunks[idx].1 = true;
|
||||
let self_ptr = self as *mut Self;
|
||||
@@ -222,11 +229,14 @@ impl DowngradeContext {
|
||||
unsafe {
|
||||
let (old, _) = std::ptr::read(thunk);
|
||||
match old.resolve(Index::Thunk(idx), self_ptr.as_mut().unwrap(), env) {
|
||||
Ok(ok) => std::ptr::write(&mut thunk.0, ok),
|
||||
Err(err) => {
|
||||
std::ptr::write(&mut thunk.0, Ir::Const(super::Const { val: Const::Null }));
|
||||
return Err(err)
|
||||
},
|
||||
Ok(ok) => std::ptr::write(&mut thunk.0, ok),
|
||||
Err(err) => {
|
||||
std::ptr::write(
|
||||
&mut thunk.0,
|
||||
Ir::Const(super::Const { val: Const::Null }),
|
||||
);
|
||||
return Err(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user