Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
0fc9d39
Minimize parameter of coerce_borrowed_pointer()
ldm0 Apr 24, 2020
169c399
Use `LocalDefId` in `typeck_tables_of` and `used_trait_imports` queries
marmeladema Apr 17, 2020
afe4b1b
Use `LocalDefId` in `unsafety_check_result` query
marmeladema Apr 17, 2020
d9e286b
Use `LocalDefId` in `mir_built` query
marmeladema Apr 17, 2020
f27cec9
Use `LocalDefId` for `type_param_predicates` query
marmeladema Apr 17, 2020
efe30de
Accept `LocalDefId` as keyt for `names_imported_by_glob_use`
marmeladema Apr 18, 2020
6a5b281
Return a `FxHashSet<LocalDefId>` from `mir_keys` query
marmeladema Apr 18, 2020
28e3022
Accept `LocalDefId` as key for `mir_borrowck` query
marmeladema Apr 18, 2020
58ba925
Accept `LocalDefId` as key for `mir_validated` query
marmeladema Apr 18, 2020
283de4f
Accept `LocalDefId` as argument for `mir_build::lint::check`
marmeladema Apr 18, 2020
df05e10
Accept `LocalDefId` as key for `lint_mod` query
marmeladema Apr 18, 2020
2286364
Accept `LocalDefId` as key for `check_mod_privacy` query
marmeladema Apr 18, 2020
d826fb0
Declare `body_owner` as `LocalDefId` in `MemCategorizationContext`
marmeladema Apr 18, 2020
eb866d0
Declare `body_owner` as `LocalDefId` in `RegionCtxt`
marmeladema Apr 18, 2020
f2a1338
Change return type of `entry_fn` query to return a `LocalDefId`
marmeladema Apr 18, 2020
a9214a9
Accept `LocalDefId` as key for `check_item_well_formed` query
marmeladema Apr 18, 2020
1c56ff3
Accept `LocalDefId` as key for `check_trait_item_well_formed` query
marmeladema Apr 18, 2020
90639e2
Accept `LocalDefId` as key for `check_impl_item_well_formed` query
marmeladema Apr 18, 2020
5a5fa39
Handle build completion message from Cargo
Mark-Simulacrum Apr 25, 2020
3a6fa99
linkchecker: fix typo in main.rs
ryzokuken Apr 26, 2020
efb6d6c
Fix broken link in `QPath` documentation
LeSeulArtichaut Apr 26, 2020
b893ad0
Rollup merge of #71292 - marmeladema:queries-local-def-id, r=eddyb
Dylan-DPC Apr 27, 2020
9cb7f25
Rollup merge of #71524 - ldm0:ptrparam, r=matthewjasper
Dylan-DPC Apr 27, 2020
76a51c0
Rollup merge of #71567 - Mark-Simulacrum:no-success, r=matthiaskrgr
Dylan-DPC Apr 27, 2020
e4837a5
Rollup merge of #71578 - ryzokuken:linkchecker, r=Dylan-DPC
Dylan-DPC Apr 27, 2020
df54124
Rollup merge of #71596 - LeSeulArtichaut:patch-1, r=Dylan-DPC
Dylan-DPC Apr 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use LocalDefId for type_param_predicates query
  • Loading branch information
marmeladema committed Apr 25, 2020
commit f27cec9b005226eb9667a28c17727d623406a7dd
4 changes: 2 additions & 2 deletions src/librustc_middle/query/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,9 @@ rustc_queries! {

/// To avoid cycles within the predicates of a single item we compute
/// per-type-parameter predicates for resolving `T::AssocTy`.
query type_param_predicates(key: (DefId, DefId)) -> ty::GenericPredicates<'tcx> {
query type_param_predicates(key: (DefId, LocalDefId)) -> ty::GenericPredicates<'tcx> {
desc { |tcx| "computing the bounds for type parameter `{}`", {
let id = tcx.hir().as_local_hir_id(key.1.expect_local());
let id = tcx.hir().as_local_hir_id(key.1);
tcx.hir().ty_param_name(id)
}}
}
Expand Down
11 changes: 11 additions & 0 deletions src/librustc_middle/ty/query/keys.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,17 @@ impl Key for (DefId, DefId) {
}
}

impl Key for (DefId, LocalDefId) {
type CacheSelector = DefaultCacheSelector;

fn query_crate(&self) -> CrateNum {
self.0.krate
}
fn default_span(&self, tcx: TyCtxt<'_>) -> Span {
self.1.default_span(tcx)
}
}

impl Key for (CrateNum, DefId) {
type CacheSelector = DefaultCacheSelector;

Expand Down
10 changes: 5 additions & 5 deletions src/librustc_typeck/collect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ impl AstConv<'tcx> for ItemCtxt<'tcx> {
}

fn get_type_parameter_bounds(&self, span: Span, def_id: DefId) -> ty::GenericPredicates<'tcx> {
self.tcx.at(span).type_param_predicates((self.item_def_id, def_id))
self.tcx.at(span).type_param_predicates((self.item_def_id, def_id.expect_local()))
}

fn re_infer(&self, _: Option<&ty::GenericParamDef>, _: Span) -> Option<ty::Region<'tcx>> {
Expand Down Expand Up @@ -478,19 +478,19 @@ fn get_new_lifetime_name<'tcx>(
/// `X: Foo` where `X` is the type parameter `def_id`.
fn type_param_predicates(
tcx: TyCtxt<'_>,
(item_def_id, def_id): (DefId, DefId),
(item_def_id, def_id): (DefId, LocalDefId),
) -> ty::GenericPredicates<'_> {
use rustc_hir::*;

// In the AST, bounds can derive from two places. Either
// written inline like `<T: Foo>` or in a where-clause like
// `where T: Foo`.

let param_id = tcx.hir().as_local_hir_id(def_id.expect_local());
let param_id = tcx.hir().as_local_hir_id(def_id);
let param_owner = tcx.hir().ty_param_owner(param_id);
let param_owner_def_id = tcx.hir().local_def_id(param_owner);
let generics = tcx.generics_of(param_owner_def_id);
let index = generics.param_def_id_to_index[&def_id];
let index = generics.param_def_id_to_index[&def_id.to_def_id()];
let ty = tcx.mk_ty_param(index, tcx.hir().ty_param_name(param_id));

// Don't look for bounds where the type parameter isn't in scope.
Expand All @@ -503,7 +503,7 @@ fn type_param_predicates(
let mut result = parent
.map(|parent| {
let icx = ItemCtxt::new(tcx, parent);
icx.get_type_parameter_bounds(DUMMY_SP, def_id)
icx.get_type_parameter_bounds(DUMMY_SP, def_id.to_def_id())
})
.unwrap_or_default();
let mut extend = None;
Expand Down