HirFileId, InFile, MacroDefId,
};
use la_arena::{Arena, ArenaMap};
+use profile::Count;
use rustc_hash::FxHashMap;
use syntax::{ast, AstNode, AstPtr};
use test_utils::mark;
/// The `ExprId` of the actual body expression.
pub body_expr: ExprId,
pub item_scope: ItemScope,
+ _c: Count<Self>,
}
pub type ExprPtr = AstPtr<ast::Expr>;
ExpandError, HirFileId, MacroDefId, MacroDefKind,
};
use la_arena::Arena;
+use profile::Count;
use rustc_hash::FxHashMap;
use syntax::{
ast::{
params: Vec::new(),
body_expr: dummy_expr_id(),
item_scope: Default::default(),
+ _c: Count::new(),
},
item_trees: {
let mut map = FxHashMap::default();
};
use la_arena::{Arena, Idx};
+use profile::Count;
use syntax::{ast, match_ast, AstNode, AstPtr, SyntaxNode, SyntaxNodePtr};
/// `AstId` points to an AST node in a specific file.
#[derive(Debug, PartialEq, Eq, Default)]
pub struct AstIdMap {
arena: Arena<SyntaxNodePtr>,
+ _c: Count<Self>,
}
impl AstIdMap {
pub(crate) fn from_source(node: &SyntaxNode) -> AstIdMap {
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
// 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