better debug impls

This commit is contained in:
Aleksey Kladov 2018-12-21 11:48:52 +03:00
parent aa628f4749
commit 164d53b22f
2 changed files with 17 additions and 2 deletions

View file

@ -1,4 +1,4 @@
use std::sync::Arc;
use std::{fmt, sync::Arc};
use salsa::{self, Database};
use ra_db::{LocationIntener, BaseDatabase};
use hir::{self, DefId, DefLoc};
@ -13,11 +13,19 @@ pub(crate) struct RootDatabase {
id_maps: Arc<IdMaps>,
}
#[derive(Debug, Default)]
#[derive(Default)]
struct IdMaps {
defs: LocationIntener<DefLoc, DefId>,
}
impl fmt::Debug for IdMaps {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("IdMaps")
.field("n_defs", &self.defs.len())
.finish()
}
}
impl salsa::Database for RootDatabase {
fn salsa_runtime(&self) -> &salsa::Runtime<RootDatabase> {
&self.runtime

View file

@ -42,6 +42,10 @@ where
ID: NumericId,
LOC: Clone + Eq + Hash,
{
pub fn len(&self) -> usize {
self.loc2id.len()
}
pub fn loc2id(&mut self, loc: &LOC) -> ID {
match self.loc2id.get(loc) {
Some(id) => return id.clone(),
@ -91,6 +95,9 @@ where
ID: NumericId,
LOC: Clone + Eq + Hash,
{
pub fn len(&self) -> usize {
self.map.lock().len()
}
pub fn loc2id(&self, loc: &LOC) -> ID {
self.map.lock().loc2id(loc)
}