1398: check for cancellation when executing queries r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2019-06-12 15:49:39 +00:00
commit a3a03b65dc
5 changed files with 6 additions and 6 deletions

View file

@ -61,7 +61,6 @@ impl HirFileId {
db: &impl AstDatabase,
file_id: HirFileId,
) -> Option<TreeArc<SyntaxNode>> {
db.check_canceled();
match file_id.0 {
HirFileIdRepr::File(file_id) => Some(db.parse(file_id).tree.syntax().to_owned()),
HirFileIdRepr::Macro(macro_file) => db.parse_macro(macro_file),

View file

@ -234,7 +234,6 @@ impl CrateDefMap {
db: &(impl DefDatabase + AstDatabase),
krate: Crate,
) -> Arc<CrateDefMap> {
db.check_canceled();
let _p = profile("crate_def_map_query");
let def_map = {
let edition = krate.edition(db);

View file

@ -54,7 +54,6 @@ mod unify;
/// The entry point of type inference.
pub fn infer_query(db: &impl HirDatabase, def: DefWithBody) -> Arc<InferenceResult> {
let _p = profile("infer_query");
db.check_canceled();
let body = def.body(db);
let resolver = def.resolver(db);
let mut ctx = InferenceContext::new(db, body, resolver);

View file

@ -83,7 +83,6 @@ pub(crate) fn implements_query(
krate: Crate,
trait_ref: Canonical<TraitRef>,
) -> Option<Solution> {
db.check_canceled();
let _p = profile("implements_query");
let goal: chalk_ir::Goal = trait_ref.value.to_chalk(db).cast();
debug!("goal: {:?}", goal);

View file

@ -33,8 +33,12 @@ impl salsa::Database for RootDatabase {
Canceled::throw()
}
fn salsa_event(&self, event: impl Fn() -> salsa::Event<RootDatabase>) {
if let salsa::EventKind::DidValidateMemoizedValue { .. } = event().kind {
self.check_canceled();
match event().kind {
salsa::EventKind::DidValidateMemoizedValue { .. }
| salsa::EventKind::WillExecute { .. } => {
self.check_canceled();
}
_ => (),
}
}
}