7460: add more counts r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2021-01-27 09:16:54 +00:00 committed by GitHub
commit 2d3266d111
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 1 deletions

View file

@ -17,6 +17,7 @@ use hir_expand::{
HirFileId, InFile, MacroDefId, HirFileId, InFile, MacroDefId,
}; };
use la_arena::{Arena, ArenaMap}; use la_arena::{Arena, ArenaMap};
use profile::Count;
use rustc_hash::FxHashMap; use rustc_hash::FxHashMap;
use syntax::{ast, AstNode, AstPtr}; use syntax::{ast, AstNode, AstPtr};
use test_utils::mark; use test_utils::mark;
@ -237,6 +238,7 @@ pub struct Body {
/// The `ExprId` of the actual body expression. /// The `ExprId` of the actual body expression.
pub body_expr: ExprId, pub body_expr: ExprId,
pub item_scope: ItemScope, pub item_scope: ItemScope,
_c: Count<Self>,
} }
pub type ExprPtr = AstPtr<ast::Expr>; pub type ExprPtr = AstPtr<ast::Expr>;

View file

@ -10,6 +10,7 @@ use hir_expand::{
ExpandError, HirFileId, MacroDefId, MacroDefKind, ExpandError, HirFileId, MacroDefId, MacroDefKind,
}; };
use la_arena::Arena; use la_arena::Arena;
use profile::Count;
use rustc_hash::FxHashMap; use rustc_hash::FxHashMap;
use syntax::{ use syntax::{
ast::{ ast::{
@ -77,6 +78,7 @@ pub(super) fn lower(
params: Vec::new(), params: Vec::new(),
body_expr: dummy_expr_id(), body_expr: dummy_expr_id(),
item_scope: Default::default(), item_scope: Default::default(),
_c: Count::new(),
}, },
item_trees: { item_trees: {
let mut map = FxHashMap::default(); let mut map = FxHashMap::default();

View file

@ -13,6 +13,7 @@ use std::{
}; };
use la_arena::{Arena, Idx}; use la_arena::{Arena, Idx};
use profile::Count;
use syntax::{ast, match_ast, AstNode, AstPtr, SyntaxNode, SyntaxNodePtr}; use syntax::{ast, match_ast, AstNode, AstPtr, SyntaxNode, SyntaxNodePtr};
/// `AstId` points to an AST node in a specific file. /// `AstId` points to an AST node in a specific file.
@ -62,12 +63,13 @@ type ErasedFileAstId = Idx<SyntaxNodePtr>;
#[derive(Debug, PartialEq, Eq, Default)] #[derive(Debug, PartialEq, Eq, Default)]
pub struct AstIdMap { pub struct AstIdMap {
arena: Arena<SyntaxNodePtr>, arena: Arena<SyntaxNodePtr>,
_c: Count<Self>,
} }
impl AstIdMap { impl AstIdMap {
pub(crate) fn from_source(node: &SyntaxNode) -> AstIdMap { pub(crate) fn from_source(node: &SyntaxNode) -> AstIdMap {
assert!(node.parent().is_none()); assert!(node.parent().is_none());
let mut res = AstIdMap { arena: Arena::default() }; let mut res = AstIdMap::default();
// By walking the tree in breadth-first order we make sure that parents // By walking the tree in breadth-first order we make sure that parents
// get lower ids then children. That is, adding a new child does not // get lower ids then children. That is, adding a new child does not
// change parent's id. This means that, say, adding a new function to a // change parent's id. This means that, say, adding a new function to a