Skip to content

Commit ea48563

Browse files
committed
Remove all non-ns diagnostics queries, naming consistenly
1 parent cc7c061 commit ea48563

File tree

7 files changed

+90
-154
lines changed

7 files changed

+90
-154
lines changed

crates/hir-ty/src/db.rs

Lines changed: 56 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
121121
def: TyDefId,
122122
) -> crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>;
123123

124-
#[salsa::invoke(crate::lower::type_for_type_alias_with_diagnostics_query)]
125-
#[salsa::cycle(cycle_result = crate::lower::type_for_type_alias_with_diagnostics_cycle_result)]
126-
fn type_for_type_alias_with_diagnostics(&self, def: TypeAliasId) -> (Binders<Ty>, Diagnostics);
124+
#[salsa::invoke(crate::lower_nextsolver::type_for_type_alias_with_diagnostics_query)]
125+
#[salsa::cycle(cycle_result = crate::lower_nextsolver::type_for_type_alias_with_diagnostics_cycle_result)]
126+
fn type_for_type_alias_with_diagnostics<'db>(
127+
&'db self,
128+
def: TypeAliasId,
129+
) -> (crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>, Diagnostics);
127130

128131
/// Returns the type of the value of the given constant, or `None` if the `ValueTyDefId` is
129132
/// a `StructId` or `EnumVariantId` with a record constructor.
@@ -133,35 +136,56 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
133136
def: ValueTyDefId,
134137
) -> Option<crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>>;
135138

136-
#[salsa::invoke(crate::lower::impl_self_ty_with_diagnostics_query)]
137-
#[salsa::cycle(cycle_result = crate::lower::impl_self_ty_with_diagnostics_cycle_result)]
138-
fn impl_self_ty_with_diagnostics(&self, def: ImplId) -> (Binders<Ty>, Diagnostics);
139+
#[salsa::invoke(crate::lower_nextsolver::impl_self_ty_with_diagnostics_query)]
140+
#[salsa::cycle(cycle_result = crate::lower_nextsolver::impl_self_ty_with_diagnostics_cycle_result)]
141+
fn impl_self_ty_with_diagnostics<'db>(
142+
&'db self,
143+
def: ImplId,
144+
) -> (crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>, Diagnostics);
139145

140146
#[salsa::invoke(crate::lower::impl_self_ty_query)]
141147
#[salsa::transparent]
142148
fn impl_self_ty(&self, def: ImplId) -> Binders<Ty>;
143149

144150
// FIXME: Make this a non-interned query.
145-
#[salsa::invoke_interned(crate::lower::const_param_ty_with_diagnostics_query)]
146-
#[salsa::cycle(cycle_result = crate::lower::const_param_ty_with_diagnostics_cycle_result)]
147-
fn const_param_ty_with_diagnostics(&self, def: ConstParamId) -> (Ty, Diagnostics);
151+
#[salsa::invoke_interned(crate::lower_nextsolver::const_param_ty_with_diagnostics_query)]
152+
#[salsa::cycle(cycle_result = crate::lower_nextsolver::const_param_ty_with_diagnostics_cycle_result)]
153+
fn const_param_ty_with_diagnostics<'db>(
154+
&'db self,
155+
def: ConstParamId,
156+
) -> (crate::next_solver::Ty<'db>, Diagnostics);
148157

149-
#[salsa::invoke(crate::lower::const_param_ty_query)]
150-
#[salsa::transparent]
158+
// FIXME: Make this a non-interned query.
159+
#[salsa::invoke_interned(crate::lower::const_param_ty_query)]
160+
#[salsa::cycle(cycle_result = crate::lower::const_param_ty_cycle_result)]
151161
fn const_param_ty(&self, def: ConstParamId) -> Ty;
152162

153-
#[salsa::invoke(crate::lower::impl_trait_with_diagnostics_query)]
154-
fn impl_trait_with_diagnostics(&self, def: ImplId) -> Option<(Binders<TraitRef>, Diagnostics)>;
163+
#[salsa::invoke(crate::lower_nextsolver::impl_trait_with_diagnostics_query)]
164+
fn impl_trait_with_diagnostics<'db>(
165+
&'db self,
166+
def: ImplId,
167+
) -> Option<(
168+
crate::next_solver::EarlyBinder<'db, crate::next_solver::TraitRef<'db>>,
169+
Diagnostics,
170+
)>;
155171

156172
#[salsa::invoke(crate::lower::impl_trait_query)]
157173
#[salsa::transparent]
158174
fn impl_trait(&self, def: ImplId) -> Option<Binders<TraitRef>>;
159175

160-
#[salsa::invoke(crate::lower::field_types_with_diagnostics_query)]
161-
fn field_types_with_diagnostics(
162-
&self,
176+
#[salsa::invoke(crate::lower_nextsolver::field_types_with_diagnostics_query)]
177+
fn field_types_with_diagnostics<'db>(
178+
&'db self,
163179
var: VariantId,
164-
) -> (Arc<ArenaMap<LocalFieldId, Binders<Ty>>>, Diagnostics);
180+
) -> (
181+
Arc<
182+
ArenaMap<
183+
LocalFieldId,
184+
crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>,
185+
>,
186+
>,
187+
Diagnostics,
188+
);
165189

166190
#[salsa::invoke(crate::lower::field_types_query)]
167191
#[salsa::transparent]
@@ -191,6 +215,21 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
191215
#[salsa::invoke(crate::lower::generic_predicates_query)]
192216
fn generic_predicates(&self, def: GenericDefId) -> GenericPredicates;
193217

218+
#[salsa::invoke(
219+
crate::lower_nextsolver::generic_predicates_without_parent_with_diagnostics_query
220+
)]
221+
fn generic_predicates_without_parent_with_diagnostics<'db>(
222+
&'db self,
223+
def: GenericDefId,
224+
) -> (crate::lower_nextsolver::GenericPredicates<'db>, Diagnostics);
225+
226+
#[salsa::invoke(crate::lower_nextsolver::generic_predicates_without_parent_query)]
227+
#[salsa::transparent]
228+
fn generic_predicates_without_parent<'db>(
229+
&'db self,
230+
def: GenericDefId,
231+
) -> crate::lower_nextsolver::GenericPredicates<'db>;
232+
194233
#[salsa::invoke(crate::lower_nextsolver::trait_environment_for_body_query)]
195234
#[salsa::transparent]
196235
fn trait_environment_for_body<'db>(&'db self, def: DefWithBodyId)
@@ -286,68 +325,24 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
286325

287326
// next trait solver
288327

289-
#[salsa::invoke(crate::lower_nextsolver::type_for_type_alias_with_diagnostics_query)]
290-
#[salsa::cycle(cycle_result = crate::lower_nextsolver::type_for_type_alias_with_diagnostics_cycle_result)]
291-
fn type_for_type_alias_with_diagnostics_ns<'db>(
292-
&'db self,
293-
def: TypeAliasId,
294-
) -> (crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>, Diagnostics);
295-
296-
#[salsa::invoke(crate::lower_nextsolver::impl_self_ty_with_diagnostics_query)]
297-
#[salsa::cycle(cycle_result = crate::lower_nextsolver::impl_self_ty_with_diagnostics_cycle_result)]
298-
fn impl_self_ty_with_diagnostics_ns<'db>(
299-
&'db self,
300-
def: ImplId,
301-
) -> (crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>, Diagnostics);
302-
303328
#[salsa::invoke(crate::lower_nextsolver::impl_self_ty_query)]
304329
#[salsa::transparent]
305330
fn impl_self_ty_ns<'db>(
306331
&'db self,
307332
def: ImplId,
308333
) -> crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>;
309334

310-
// FIXME: Make this a non-interned query.
311-
#[salsa::invoke_interned(crate::lower_nextsolver::const_param_ty_with_diagnostics_query)]
312-
fn const_param_ty_with_diagnostics_ns<'db>(
313-
&'db self,
314-
def: ConstParamId,
315-
) -> (crate::next_solver::Ty<'db>, Diagnostics);
316-
317335
#[salsa::invoke(crate::lower_nextsolver::const_param_ty_query)]
318336
#[salsa::transparent]
319337
fn const_param_ty_ns<'db>(&'db self, def: ConstParamId) -> crate::next_solver::Ty<'db>;
320338

321-
#[salsa::invoke(crate::lower_nextsolver::impl_trait_with_diagnostics_query)]
322-
fn impl_trait_with_diagnostics_ns<'db>(
323-
&'db self,
324-
def: ImplId,
325-
) -> Option<(
326-
crate::next_solver::EarlyBinder<'db, crate::next_solver::TraitRef<'db>>,
327-
Diagnostics,
328-
)>;
329-
330339
#[salsa::invoke(crate::lower_nextsolver::impl_trait_query)]
331340
#[salsa::transparent]
332341
fn impl_trait_ns<'db>(
333342
&'db self,
334343
def: ImplId,
335344
) -> Option<crate::next_solver::EarlyBinder<'db, crate::next_solver::TraitRef<'db>>>;
336345

337-
#[salsa::invoke(crate::lower_nextsolver::field_types_with_diagnostics_query)]
338-
fn field_types_with_diagnostics_ns<'db>(
339-
&'db self,
340-
var: VariantId,
341-
) -> (
342-
Arc<
343-
ArenaMap<
344-
LocalFieldId,
345-
crate::next_solver::EarlyBinder<'db, crate::next_solver::Ty<'db>>,
346-
>,
347-
>,
348-
Diagnostics,
349-
);
350-
351346
#[salsa::invoke(crate::lower_nextsolver::field_types_query)]
352347
#[salsa::transparent]
353348
fn field_types_ns<'db>(
@@ -383,21 +378,6 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
383378
&'db self,
384379
def: GenericDefId,
385380
) -> crate::lower_nextsolver::GenericPredicates<'db>;
386-
387-
#[salsa::invoke(
388-
crate::lower_nextsolver::generic_predicates_without_parent_with_diagnostics_query
389-
)]
390-
fn generic_predicates_without_parent_with_diagnostics_ns<'db>(
391-
&'db self,
392-
def: GenericDefId,
393-
) -> (crate::lower_nextsolver::GenericPredicates<'db>, Diagnostics);
394-
395-
#[salsa::invoke(crate::lower_nextsolver::generic_predicates_without_parent_query)]
396-
#[salsa::transparent]
397-
fn generic_predicates_without_parent_ns<'db>(
398-
&'db self,
399-
def: GenericDefId,
400-
) -> crate::lower_nextsolver::GenericPredicates<'db>;
401381
}
402382

403383
#[test]

crates/hir-ty/src/dyn_compatibility.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ where
364364
cb(MethodViolationCode::UndispatchableReceiver)?;
365365
}
366366

367-
let predicates = &*db.generic_predicates_without_parent_ns(func.into());
367+
let predicates = &*db.generic_predicates_without_parent(func.into());
368368
for pred in predicates {
369369
let pred = pred.kind().skip_binder();
370370

crates/hir-ty/src/lower.rs

Lines changed: 8 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use hir_def::{
3232
hir::generics::{GenericParamDataRef, TypeOrConstParamData, WherePredicate},
3333
lang_item::LangItem,
3434
resolver::{HasResolver, LifetimeNs, Resolver, TypeNs},
35-
signatures::{FunctionSignature, TraitFlags, TypeAliasFlags},
35+
signatures::{FunctionSignature, TraitFlags},
3636
type_ref::{
3737
ConstRef, LifetimeRefId, LiteralConstRef, PathId, TraitBoundModifier,
3838
TraitRef as HirTraitRef, TypeBound, TypeRef, TypeRefId,
@@ -908,7 +908,7 @@ pub(crate) fn field_types_query(
908908
db: &dyn HirDatabase,
909909
variant_id: VariantId,
910910
) -> Arc<ArenaMap<LocalFieldId, Binders<Ty>>> {
911-
db.field_types_with_diagnostics(variant_id).0
911+
field_types_with_diagnostics_query(db, variant_id).0
912912
}
913913

914914
/// Build the type of all specific fields of a struct or enum variant.
@@ -1303,46 +1303,6 @@ pub(crate) fn generic_defaults_with_diagnostics_cycle_result(
13031303
(GenericDefaults(None), None)
13041304
}
13051305

1306-
pub(crate) fn type_for_type_alias_with_diagnostics_query(
1307-
db: &dyn HirDatabase,
1308-
t: TypeAliasId,
1309-
) -> (Binders<Ty>, Diagnostics) {
1310-
let generics = generics(db, t.into());
1311-
let type_alias_data = db.type_alias_signature(t);
1312-
let mut diags = None;
1313-
let inner = if type_alias_data.flags.contains(TypeAliasFlags::IS_EXTERN) {
1314-
TyKind::Foreign(crate::to_foreign_def_id(t)).intern(Interner)
1315-
} else {
1316-
let resolver = t.resolver(db);
1317-
let alias = db.type_alias_signature(t);
1318-
let mut ctx = TyLoweringContext::new(
1319-
db,
1320-
&resolver,
1321-
&alias.store,
1322-
t.into(),
1323-
LifetimeElisionKind::AnonymousReportError,
1324-
)
1325-
.with_impl_trait_mode(ImplTraitLoweringMode::Opaque)
1326-
.with_type_param_mode(ParamLoweringMode::Variable);
1327-
let res = alias
1328-
.ty
1329-
.map(|type_ref| ctx.lower_ty(type_ref))
1330-
.unwrap_or_else(|| TyKind::Error.intern(Interner));
1331-
diags = create_diagnostics(ctx.diagnostics);
1332-
res
1333-
};
1334-
1335-
(make_binders(db, &generics, inner), diags)
1336-
}
1337-
1338-
pub(crate) fn type_for_type_alias_with_diagnostics_cycle_result(
1339-
db: &dyn HirDatabase,
1340-
adt: TypeAliasId,
1341-
) -> (Binders<Ty>, Diagnostics) {
1342-
let generics = generics(db, adt.into());
1343-
(make_binders(db, &generics, TyKind::Error.intern(Interner)), None)
1344-
}
1345-
13461306
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
13471307
pub enum TyDefId {
13481308
BuiltinType(BuiltinType),
@@ -1376,7 +1336,7 @@ impl ValueTyDefId {
13761336
}
13771337

13781338
pub(crate) fn impl_self_ty_query(db: &dyn HirDatabase, impl_id: ImplId) -> Binders<Ty> {
1379-
db.impl_self_ty_with_diagnostics(impl_id).0
1339+
impl_self_ty_with_diagnostics_query(db, impl_id).0
13801340
}
13811341

13821342
pub(crate) fn impl_self_ty_with_diagnostics_query(
@@ -1400,16 +1360,8 @@ pub(crate) fn impl_self_ty_with_diagnostics_query(
14001360
)
14011361
}
14021362

1403-
pub(crate) fn impl_self_ty_with_diagnostics_cycle_result(
1404-
db: &dyn HirDatabase,
1405-
impl_id: ImplId,
1406-
) -> (Binders<Ty>, Diagnostics) {
1407-
let generics = generics(db, impl_id.into());
1408-
(make_binders(db, &generics, TyKind::Error.intern(Interner)), None)
1409-
}
1410-
14111363
pub(crate) fn const_param_ty_query(db: &dyn HirDatabase, def: ConstParamId) -> Ty {
1412-
db.const_param_ty_with_diagnostics(def).0
1364+
const_param_ty_with_diagnostics_query(db, def).0
14131365
}
14141366

14151367
// returns None if def is a type arg
@@ -1437,16 +1389,16 @@ pub(crate) fn const_param_ty_with_diagnostics_query(
14371389
(ty, create_diagnostics(ctx.diagnostics))
14381390
}
14391391

1440-
pub(crate) fn const_param_ty_with_diagnostics_cycle_result(
1392+
pub(crate) fn const_param_ty_cycle_result(
14411393
_: &dyn HirDatabase,
14421394
_: crate::db::HirDatabaseData,
14431395
_: ConstParamId,
1444-
) -> (Ty, Diagnostics) {
1445-
(TyKind::Error.intern(Interner), None)
1396+
) -> Ty {
1397+
TyKind::Error.intern(Interner)
14461398
}
14471399

14481400
pub(crate) fn impl_trait_query(db: &dyn HirDatabase, impl_id: ImplId) -> Option<Binders<TraitRef>> {
1449-
db.impl_trait_with_diagnostics(impl_id).map(|it| it.0)
1401+
impl_trait_with_diagnostics_query(db, impl_id).map(|it| it.0)
14501402
}
14511403

14521404
pub(crate) fn impl_trait_with_diagnostics_query(

crates/hir-ty/src/lower_nextsolver.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ pub(crate) fn impl_trait_query<'db>(
904904
db: &'db dyn HirDatabase,
905905
impl_id: ImplId,
906906
) -> Option<EarlyBinder<'db, TraitRef<'db>>> {
907-
db.impl_trait_with_diagnostics_ns(impl_id).map(|it| it.0)
907+
db.impl_trait_with_diagnostics(impl_id).map(|it| it.0)
908908
}
909909

910910
pub(crate) fn impl_trait_with_diagnostics_query<'db>(
@@ -986,7 +986,7 @@ pub(crate) fn ty_query<'db>(db: &'db dyn HirDatabase, def: TyDefId) -> EarlyBind
986986
AdtDef::new(it, interner),
987987
GenericArgs::identity_for_item(interner, it.into()),
988988
)),
989-
TyDefId::TypeAliasId(it) => db.type_for_type_alias_with_diagnostics_ns(it).0,
989+
TyDefId::TypeAliasId(it) => db.type_for_type_alias_with_diagnostics(it).0,
990990
}
991991
}
992992

@@ -1131,7 +1131,7 @@ pub(crate) fn impl_self_ty_query<'db>(
11311131
db: &'db dyn HirDatabase,
11321132
impl_id: ImplId,
11331133
) -> EarlyBinder<'db, Ty<'db>> {
1134-
db.impl_self_ty_with_diagnostics_ns(impl_id).0
1134+
db.impl_self_ty_with_diagnostics(impl_id).0
11351135
}
11361136

11371137
pub(crate) fn impl_self_ty_with_diagnostics_query<'db>(
@@ -1162,7 +1162,7 @@ pub(crate) fn impl_self_ty_with_diagnostics_cycle_result(
11621162
}
11631163

11641164
pub(crate) fn const_param_ty_query<'db>(db: &'db dyn HirDatabase, def: ConstParamId) -> Ty<'db> {
1165-
db.const_param_ty_with_diagnostics_ns(def).0
1165+
db.const_param_ty_with_diagnostics(def).0
11661166
}
11671167

11681168
// returns None if def is a type arg
@@ -1191,11 +1191,21 @@ pub(crate) fn const_param_ty_with_diagnostics_query<'db>(
11911191
(ty, create_diagnostics(ctx.diagnostics))
11921192
}
11931193

1194+
pub(crate) fn const_param_ty_with_diagnostics_cycle_result<'db>(
1195+
db: &'db dyn HirDatabase,
1196+
_: crate::db::HirDatabaseData,
1197+
def: ConstParamId,
1198+
) -> (Ty<'db>, Diagnostics) {
1199+
let resolver = def.parent().resolver(db);
1200+
let interner = DbInterner::new_with(db, Some(resolver.krate()), None);
1201+
(Ty::new_error(interner, ErrorGuaranteed), None)
1202+
}
1203+
11941204
pub(crate) fn field_types_query<'db>(
11951205
db: &'db dyn HirDatabase,
11961206
variant_id: VariantId,
11971207
) -> Arc<ArenaMap<LocalFieldId, EarlyBinder<'db, Ty<'db>>>> {
1198-
db.field_types_with_diagnostics_ns(variant_id).0
1208+
db.field_types_with_diagnostics(variant_id).0
11991209
}
12001210

12011211
/// Build the type of all specific fields of a struct or enum variant.

crates/hir-ty/src/next_solver/interner.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1320,7 +1320,7 @@ impl<'db> rustc_type_ir::Interner for DbInterner<'db> {
13201320
self,
13211321
def_id: Self::DefId,
13221322
) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>> {
1323-
let predicates = self.db().generic_predicates_without_parent_ns(def_id.try_into().unwrap());
1323+
let predicates = self.db().generic_predicates_without_parent(def_id.try_into().unwrap());
13241324
let predicates: Vec<_> = predicates.iter().cloned().collect();
13251325
EarlyBinder::bind(predicates.into_iter())
13261326
}

0 commit comments

Comments
 (0)