Skip to content

Commit c6a5d87

Browse files
bors[bot]matklad
andcommitted
Merge #1302
1302: profile type inference r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
2 parents 9fe8e56 + f63be06 commit c6a5d87

File tree

5 files changed

+8
-3
lines changed

5 files changed

+8
-3
lines changed

crates/ra_hir/src/db.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ pub trait HirDatabase: DefDatabase {
126126
#[salsa::invoke(ExprScopes::expr_scopes_query)]
127127
fn expr_scopes(&self, def: DefWithBody) -> Arc<ExprScopes>;
128128

129-
#[salsa::invoke(crate::ty::infer)]
129+
#[salsa::invoke(crate::ty::infer_query)]
130130
fn infer(&self, def: DefWithBody) -> Arc<InferenceResult>;
131131

132132
#[salsa::invoke(crate::ty::type_for_def)]

crates/ra_hir/src/ty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::{Name, AdtDef, type_ref::Mutability, db::HirDatabase, Trait, GenericP
2020
use display::{HirDisplay, HirFormatter};
2121

2222
pub(crate) use lower::{TypableDef, type_for_def, type_for_field, callable_item_sig, generic_predicates, generic_defaults};
23-
pub(crate) use infer::{infer, InferenceResult, InferTy};
23+
pub(crate) use infer::{infer_query, InferenceResult, InferTy};
2424
pub use lower::CallableDef;
2525

2626
/// A type constructor or type name: this might be something like the primitive

crates/ra_hir/src/ty/infer.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use ena::unify::{InPlaceUnificationTable, UnifyKey, UnifyValue, NoError};
2323
use rustc_hash::FxHashMap;
2424

2525
use ra_arena::map::ArenaMap;
26+
use ra_prof::profile;
2627
use test_utils::tested_by;
2728

2829
use crate::{
@@ -51,7 +52,8 @@ use super::{
5152
mod unify;
5253

5354
/// The entry point of type inference.
54-
pub fn infer(db: &impl HirDatabase, def: DefWithBody) -> Arc<InferenceResult> {
55+
pub fn infer_query(db: &impl HirDatabase, def: DefWithBody) -> Arc<InferenceResult> {
56+
let _p = profile("infer_query");
5557
db.check_canceled();
5658
let body = def.body(db);
5759
let resolver = def.resolver(db);

crates/ra_hir/src/ty/traits.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use std::sync::{Arc, Mutex};
44
use rustc_hash::FxHashSet;
55
use log::debug;
66
use chalk_ir::cast::Cast;
7+
use ra_prof::profile;
78

89
use crate::{Crate, Trait, db::HirDatabase, ImplBlock};
910
use super::{TraitRef, Ty, Canonical};
@@ -81,6 +82,7 @@ pub(crate) fn implements_query(
8182
krate: Crate,
8283
trait_ref: Canonical<TraitRef>,
8384
) -> Option<Solution> {
85+
let _p = profile("implements_query");
8486
let goal: chalk_ir::Goal = trait_ref.value.to_chalk(db).cast();
8587
debug!("goal: {:?}", goal);
8688
let env = chalk_ir::Environment::new();

crates/ra_prof/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ fn print(lvl: usize, msgs: &[Message], out: &mut impl Write) {
198198
if l != lvl {
199199
continue;
200200
}
201+
201202
writeln!(out, "{} {:6}ms - {}", indent, dur.as_millis(), msg)
202203
.expect("printing profiling info to stdout");
203204

0 commit comments

Comments
 (0)