De-querify transitive_deps again
This commit is contained in:
parent
037a0678bd
commit
277dffe9d6
5 changed files with 5 additions and 8 deletions
|
|
@ -460,13 +460,11 @@ pub struct Crate {
|
|||
pub env: Env,
|
||||
}
|
||||
|
||||
#[salsa::tracked]
|
||||
impl Crate {
|
||||
/// Returns an iterator over all transitive dependencies of the given crate,
|
||||
/// including the crate itself.
|
||||
///
|
||||
/// **Warning**: do not use this query in `hir-*` crates! It kills incrementality across crate metadata modifications.
|
||||
#[salsa::tracked(returns(deref))]
|
||||
pub fn transitive_deps(self, db: &dyn salsa::Database) -> Box<[Crate]> {
|
||||
// There is a bit of duplication here and in `CrateGraphBuilder` in the same method, but it's not terrible
|
||||
// and removing that is a bit difficult.
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ fn eval_goal(db: &TestDB, file_id: EditionedFileId) -> Result<Const<'_>, ConstEv
|
|||
_ => None,
|
||||
})
|
||||
.expect("No const named GOAL found in the test");
|
||||
db.const_eval(const_id.into(), GenericArgs::new_from_iter(interner, []), None)
|
||||
db.const_eval(const_id, GenericArgs::new_from_iter(interner, []), None)
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
use base_db::{Crate, target::TargetLoadError};
|
||||
use hir_def::{
|
||||
AdtId, CallableDefId, ConstId, ConstParamId, DefWithBodyId, EnumVariantId, FunctionId,
|
||||
GenericDefId, ImplId, LifetimeParamId, LocalFieldId, StaticId, TraitId, TypeAliasId,
|
||||
TypeOrConstParamId, VariantId, db::DefDatabase, hir::ExprId, layout::TargetDataLayout,
|
||||
GenericDefId, ImplId, LifetimeParamId, LocalFieldId, StaticId, TraitId, TypeAliasId, VariantId,
|
||||
db::DefDatabase, hir::ExprId, layout::TargetDataLayout,
|
||||
};
|
||||
use la_arena::ArenaMap;
|
||||
use salsa::plumbing::AsId;
|
||||
|
|
|
|||
|
|
@ -613,7 +613,6 @@ fn main() {
|
|||
"impl_signature_with_source_map_shim",
|
||||
"callable_item_signature_shim",
|
||||
"TraitImpls::for_crate_and_deps_",
|
||||
"Crate::transitive_deps_",
|
||||
"TraitImpls::for_crate_",
|
||||
"impl_trait_with_diagnostics_shim",
|
||||
"impl_self_ty_with_diagnostics_shim",
|
||||
|
|
|
|||
|
|
@ -254,7 +254,7 @@ impl Crate {
|
|||
self.id
|
||||
.transitive_deps(db)
|
||||
.into_iter()
|
||||
.filter_map(|&krate| db.crate_notable_traits(krate))
|
||||
.filter_map(|krate| db.crate_notable_traits(krate))
|
||||
.flatten()
|
||||
}
|
||||
|
||||
|
|
@ -2806,7 +2806,7 @@ impl Const {
|
|||
pub fn eval(self, db: &dyn HirDatabase) -> Result<EvaluatedConst<'_>, ConstEvalError<'_>> {
|
||||
let interner = DbInterner::new_with(db, None, None);
|
||||
let ty = db.value_ty(self.id.into()).unwrap().instantiate_identity();
|
||||
db.const_eval(self.id.into(), GenericArgs::new_from_iter(interner, []), None)
|
||||
db.const_eval(self.id, GenericArgs::new_from_iter(interner, []), None)
|
||||
.map(|it| EvaluatedConst { const_: it, def: self.id.into(), ty })
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue