]> git.lizzy.rs Git - rust.git/commitdiff
profile type inference
authorAleksey Kladov <aleksey.kladov@gmail.com>
Tue, 21 May 2019 13:24:53 +0000 (16:24 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Tue, 21 May 2019 13:26:13 +0000 (16:26 +0300)
crates/ra_hir/src/db.rs
crates/ra_hir/src/ty.rs
crates/ra_hir/src/ty/infer.rs
crates/ra_prof/src/lib.rs

index da62db58a005dd987b7bb0cb8c9dd0eee374a2cf..11cdf9c34922c93a82c8174c64ecb22a5636cf7d 100644 (file)
@@ -126,7 +126,7 @@ pub trait HirDatabase: DefDatabase {
     #[salsa::invoke(ExprScopes::expr_scopes_query)]
     fn expr_scopes(&self, def: DefWithBody) -> Arc<ExprScopes>;
 
-    #[salsa::invoke(crate::ty::infer)]
+    #[salsa::invoke(crate::ty::infer_query)]
     fn infer(&self, def: DefWithBody) -> Arc<InferenceResult>;
 
     #[salsa::invoke(crate::ty::type_for_def)]
index 9a65bf567de39d4fb3baf8b2b697d9ae4bfef821..3679a2242acfd630a51607bc3f7221601061efe9 100644 (file)
@@ -20,7 +20,7 @@
 use display::{HirDisplay, HirFormatter};
 
 pub(crate) use lower::{TypableDef, type_for_def, type_for_field, callable_item_sig, generic_predicates, generic_defaults};
-pub(crate) use infer::{infer, InferenceResult, InferTy};
+pub(crate) use infer::{infer_query, InferenceResult, InferTy};
 pub use lower::CallableDef;
 
 /// A type constructor or type name: this might be something like the primitive
index 1e7d97f51cc6dc4b74601203893b80ccb953698d..a48272981f2470134d43abcf2a9c9afca15db902 100644 (file)
@@ -23,6 +23,7 @@
 use rustc_hash::FxHashMap;
 
 use ra_arena::map::ArenaMap;
+use ra_prof::profile;
 use test_utils::tested_by;
 
 use crate::{
@@ -51,7 +52,8 @@
 mod unify;
 
 /// The entry point of type inference.
-pub fn infer(db: &impl HirDatabase, def: DefWithBody) -> Arc<InferenceResult> {
+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);
index e56446c9fa448836040864dbde6b40a1ae73b69b..61f2226d723ea483d989a4323ec7893f76259885 100644 (file)
@@ -198,6 +198,7 @@ fn print(lvl: usize, msgs: &[Message], out: &mut impl Write) {
         if l != lvl {
             continue;
         }
+
         writeln!(out, "{} {:6}ms - {}", indent, dur.as_millis(), msg)
             .expect("printing profiling info to stdout");