Remove QueryContext
.
There is a type `QueryCtxt`, which impls the trait `QueryContext`. Confusingly, there is another type `QueryContext`. The latter is (like `TyCtxt`) just a pointer to a `GlobalContext`. It's not used much, e.g. its `impl` block has a single method. This commit removes `QueryContext`, replacing its use with direct `GlobalCtxt` use.
This commit is contained in:
parent
afbe167fbb
commit
243944c653
4 changed files with 33 additions and 36 deletions
|
@ -468,6 +468,18 @@ pub struct GlobalCtxt<'tcx> {
|
|||
pub(crate) alloc_map: Lock<interpret::AllocMap<'tcx>>,
|
||||
}
|
||||
|
||||
impl<'tcx> GlobalCtxt<'tcx> {
|
||||
/// Installs `self` in a `TyCtxt` and `ImplicitCtxt` for the duration of
|
||||
/// `f`.
|
||||
pub fn enter<'a: 'tcx, F, R>(&'a self, f: F) -> R
|
||||
where
|
||||
F: FnOnce(TyCtxt<'tcx>) -> R,
|
||||
{
|
||||
let icx = tls::ImplicitCtxt::new(self);
|
||||
tls::enter_context(&icx, || f(icx.tcx))
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> TyCtxt<'tcx> {
|
||||
/// Expects a body and returns its codegen attributes.
|
||||
///
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue