Skip to content

Commit fd8cf3c

Browse files
Simplify macro
1 parent 6e5a210 commit fd8cf3c

File tree

1 file changed

+19
-57
lines changed

1 file changed

+19
-57
lines changed

src/librustc_middle/ty/query/plumbing.rs

Lines changed: 19 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -242,59 +242,9 @@ macro_rules! define_queries {
242242
}
243243
}
244244

245-
macro_rules! define_query_helper {
246-
(TyCtxtAt<$tcx:tt>, $(#[$attr:meta])* $name:ident(DefId) -> $V:ty) => {
247-
$(#[$attr])*
248-
#[inline(always)]
249-
pub fn $name(self, key: impl Into<DefId>) -> $V {
250-
fn mono(this: TyCtxtAt<$tcx>, key: DefId) -> $V {
251-
get_query::<queries::$name<'_>, _>(this.tcx, this.span, key)
252-
}
253-
254-
mono(self, key.into())
255-
}
256-
};
257-
(TyCtxtAt<$tcx:tt>, $(#[$attr:meta])* $name:ident($K:ty) -> $V:ty) => {
258-
$(#[$attr])*
259-
#[inline(always)]
260-
pub fn $name(self, key: $K) -> $V {
261-
get_query::<queries::$name<'_>, _>(self.tcx, self.span, key)
262-
}
263-
};
264-
265-
(TyCtxt<$tcx:tt>, $(#[$attr:meta])* $name:ident(DefId) -> $V:ty) => {
266-
$(#[$attr])*
267-
#[inline(always)]
268-
pub fn $name(self, key: impl Into<DefId>) -> $V {
269-
self.at(DUMMY_SP).$name(key)
270-
}
271-
};
272-
(TyCtxt<$tcx:tt>, $(#[$attr:meta])* $name:ident($K:ty) -> $V:ty) => {
273-
$(#[$attr])*
274-
#[inline(always)]
275-
pub fn $name(self, key: $K) -> $V {
276-
self.at(DUMMY_SP).$name(key)
277-
}
278-
};
279-
280-
(TyCtxtEnsure<$tcx:tt>, $(#[$attr:meta])* $name:ident(DefId) -> $V:ty) => {
281-
$(#[$attr])*
282-
#[inline(always)]
283-
pub fn $name(self, key: impl Into<DefId>) {
284-
fn mono(this: TyCtxtEnsure<$tcx>, key: DefId) {
285-
ensure_query::<queries::$name<'_>, _>(this.tcx, key)
286-
}
287-
288-
mono(self, key.into())
289-
}
290-
};
291-
(TyCtxtEnsure<$tcx:tt>, $(#[$attr:meta])* $name:ident($K:ty) -> $V:ty) => {
292-
$(#[$attr])*
293-
#[inline(always)]
294-
pub fn $name(self, key: $K) {
295-
ensure_query::<queries::$name<'_>, _>(self.tcx, key)
296-
}
297-
};
245+
macro_rules! query_helper_param_ty {
246+
(DefId) => { impl Into<DefId> };
247+
($K:ty) => { $K };
298248
}
299249

300250
macro_rules! define_queries_inner {
@@ -432,8 +382,12 @@ macro_rules! define_queries_inner {
432382
pub tcx: TyCtxt<'tcx>,
433383
}
434384

435-
impl TyCtxtEnsure<'tcx> {
436-
$( define_query_helper!(TyCtxtEnsure<'tcx>, $(#[$attr])* $name($($K)*) -> $V); )*
385+
impl TyCtxtEnsure<$tcx> {
386+
$($(#[$attr])*
387+
#[inline(always)]
388+
pub fn $name(self, key: query_helper_param_ty!($($K)*)) {
389+
ensure_query::<queries::$name<'_>, _>(self.tcx, key.into())
390+
})*
437391
}
438392

439393
#[derive(Copy, Clone)]
@@ -470,7 +424,11 @@ macro_rules! define_queries_inner {
470424
}
471425
}
472426

473-
$( define_query_helper!(TyCtxt<$tcx>, $(#[$attr])* $name($($K)*) -> $V); )*
427+
$($(#[$attr])*
428+
#[inline(always)]
429+
pub fn $name(self, key: query_helper_param_ty!($($K)*)) -> $V {
430+
self.at(DUMMY_SP).$name(key)
431+
})*
474432

475433
/// All self-profiling events generated by the query engine use
476434
/// virtual `StringId`s for their `event_id`. This method makes all
@@ -503,7 +461,11 @@ macro_rules! define_queries_inner {
503461
}
504462

505463
impl TyCtxtAt<$tcx> {
506-
$( define_query_helper!(TyCtxtAt<$tcx>, $(#[$attr])* $name($($K)*) -> $V); )*
464+
$($(#[$attr])*
465+
#[inline(always)]
466+
pub fn $name(self, key: query_helper_param_ty!($($K)*)) -> $V {
467+
get_query::<queries::$name<'_>, _>(self.tcx, self.span, key.into())
468+
})*
507469
}
508470

509471
define_provider_struct! {

0 commit comments

Comments
 (0)