Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
7f71511
inline outlier links, for consistency
tshepang Jan 19, 2026
9fad6f6
replace _ with - in path names (for consistency)
tshepang Jan 20, 2026
db14255
Add link to internals.rust-lang.org in walkthrough
reddevilmidzy Jan 20, 2026
f28c32a
Document experimental RFC process in walkthrough
reddevilmidzy Jan 20, 2026
156cb44
Add link to RFC2033 in walkthrough
reddevilmidzy Jan 20, 2026
8fe3738
Prepare for merging from rust-lang/rust
invalid-email-address Jan 20, 2026
0de393a
Merge ref '5c49c4f7c839' from rust-lang/rust
invalid-email-address Jan 20, 2026
307b9d9
fix dangling reference
tshepang Jan 20, 2026
b75e040
fix grammar
tshepang Jan 20, 2026
5c8ba26
missing pause
tshepang Jan 20, 2026
92c7f4a
Merge pull request #2735 from rust-lang/rustc-pull
tshepang Jan 20, 2026
6710b7f
coercions.md: add date-check marker
tshepang Jan 23, 2026
75f776b
Merge pull request #2737 from rust-lang/tshepang-patch-1
BoxyUwU Jan 23, 2026
7ecd7cd
Fix typo
reddevilmidzy Jan 23, 2026
b7d9868
Merge pull request #2734 from reddevilmidzy/eRFC
tshepang Jan 23, 2026
46483e6
Add a new subsection for contributors
ZuseZ4 Jan 25, 2026
dd6ccfd
Merge pull request #2738 from rust-lang/add-offload-contributing-docs
ZuseZ4 Jan 25, 2026
0b28b13
Add info about unused_attributes
JonathanBrouwer Jan 25, 2026
f010f15
Merge pull request #2739 from rust-lang/unused_attributes
JonathanBrouwer Jan 25, 2026
79549a0
Prepare for merging from rust-lang/rust
invalid-email-address Jan 26, 2026
5a2a3f3
Merge ref '873d4682c7d2' from rust-lang/rust
invalid-email-address Jan 26, 2026
248ffb6
Merge pull request #2740 from rust-lang/rustc-pull
tshepang Jan 26, 2026
8a24ab3
Prepare for merging from rust-lang/rust
invalid-email-address Jan 26, 2026
cec1793
Merge ref '0462e8f7e51f' from rust-lang/rust
invalid-email-address Jan 26, 2026
1054091
Merge pull request #2741 from rust-lang/rustc-pull
tshepang Jan 26, 2026
b7077f6
Add missing autodiff run-make tests to the install docs
ZuseZ4 Jan 27, 2026
f2141d0
Merge pull request #2743 from rust-lang/update-autodiff-tests
ZuseZ4 Jan 27, 2026
4571484
Refer to debug-logging bootstrap config by its full path.
lolbinarycat Jan 28, 2026
9047b6d
Merge pull request #2744 from rust-lang/lolbinarycat-patch-1
tshepang Jan 28, 2026
4803644
Fix false positive in unused_parens caused by break
chenyukang Jan 29, 2026
a333f6f
Fix missing syntax context in lifetime hygiene debug output
aytey Jan 29, 2026
21c99d3
Fix some typos of "similarity"
Zalathar Jan 29, 2026
363d3ac
Document a safety condition for `TypedArena::alloc_raw_slice`
Zalathar Jan 29, 2026
15a1e9b
Merge pull request #2733 from rust-lang/tshepang/normalize-paths
tshepang Jan 29, 2026
d3bffef
bump to latest mdbook
tshepang Jan 29, 2026
308c56a
Merge pull request #2745 from rust-lang/tshepang/bump-mdbook
tshepang Jan 29, 2026
69624f5
Fix flakyness issue with `tests/rustdoc-gui/globals.goml` test
GuillaumeGomez Jan 29, 2026
c943cd9
fix redirects
tshepang Jan 29, 2026
6910e97
Merge pull request #2746 from rust-lang/fix-redirects
tshepang Jan 29, 2026
f0bb4e6
Prepare for merging from rust-lang/rust
invalid-email-address Jan 29, 2026
8f9dd9e
Merge ref '370143facfb3' from rust-lang/rust
invalid-email-address Jan 29, 2026
74b96ac
Merge pull request #2747 from rust-lang/rustc-pull
tshepang Jan 29, 2026
b128539
sembr src/tracing.md
tshepang Jan 29, 2026
481d49d
missing word
tshepang Jan 29, 2026
c4718ea
missing pause
tshepang Jan 29, 2026
83eae62
sembr src/tests/compiletest.md
tshepang Jan 29, 2026
b643676
misc improvements
tshepang Jan 29, 2026
93049c3
fix sembr tool corner case
tshepang Jan 29, 2026
03b8ebb
sembr src/tests/ui.md
tshepang Jan 29, 2026
dd8ae23
some improvements
tshepang Jan 29, 2026
dd4870d
fix sembr tool corner case
tshepang Jan 29, 2026
43fc5a4
sembr src/walkthrough.md
tshepang Jan 29, 2026
7d8b532
sembr src/debuginfo/lldb-visualizers.md
tshepang Jan 29, 2026
d4764e3
some improvements
tshepang Jan 29, 2026
2aea912
sembr src/building/suggested.md
tshepang Jan 29, 2026
ffc3b8a
capitalise start of sentence
tshepang Jan 29, 2026
d7e88cf
sembr src/git.md
tshepang Jan 29, 2026
d34695f
some improvements
tshepang Jan 29, 2026
654a5a3
sembr src/compiler-team.md
tshepang Jan 29, 2026
b4ded12
extraneous whitespace
tshepang Jan 29, 2026
84e994e
sembr src/tests/ci.md
tshepang Jan 29, 2026
c3e9f00
sembr src/rustdoc-internals/rustdoc-json-test-suite.md
tshepang Jan 29, 2026
654945a
Simplify `QueryStackFrame::new`.
nnethercote Jan 16, 2026
637e2cb
Rename `create_query_frame_extra`.
nnethercote Jan 16, 2026
31eab45
fix sembr tool corner case
tshepang Jan 29, 2026
62dbe9f
whitespace
tshepang Jan 29, 2026
6ea1809
Merge pull request #2748 from rust-lang/tshepang/sembr
tshepang Jan 29, 2026
1c3d9ab
Reduce generics use in the query system.
nnethercote Jan 15, 2026
a976f5a
Rollup merge of #151777 - nnethercote:query-stack-3, r=nnethercote
Zalathar Jan 30, 2026
5fe0149
Rollup merge of #151808 - Zalathar:alloc-raw-slice, r=Kivooeo
Zalathar Jan 30, 2026
7308970
Rollup merge of #151811 - chenyukang:yukang-fix-143256-unused-parens-…
Zalathar Jan 30, 2026
8badc7f
Rollup merge of #151817 - aytey:fix_lifetime_unpretty_hygiene, r=jdon…
Zalathar Jan 30, 2026
0a10219
Rollup merge of #151836 - GuillaumeGomez:fix-gui-flakyness, r=Guillau…
Zalathar Jan 30, 2026
ddd4187
Rollup merge of #151844 - tshepang:rdg-sync, r=tshepang
Zalathar Jan 30, 2026
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
28 changes: 24 additions & 4 deletions compiler/rustc_arena/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,22 @@ impl<T> TypedArena<T> {
available_bytes >= additional_bytes
}

/// Allocates storage for `len >= 1` values in this arena, and returns a
/// raw pointer to the first value's storage.
///
/// # Safety
///
/// Caller must initialize each of the `len` slots to a droppable value
/// before the arena is dropped.
///
/// In practice, this typically means that the caller must be able to
/// raw-copy `len` already-initialized values into the slice without any
/// possibility of panicking.
///
/// FIXME(Zalathar): This is *very* fragile; perhaps we need a different
/// approach to arena-allocating slices of droppable values.
#[inline]
fn alloc_raw_slice(&self, len: usize) -> *mut T {
unsafe fn alloc_raw_slice(&self, len: usize) -> *mut T {
assert!(size_of::<T>() != 0);
assert!(len != 0);

Expand Down Expand Up @@ -208,7 +222,7 @@ impl<T> TypedArena<T> {
&self,
iter: impl IntoIterator<Item = Result<T, E>>,
) -> Result<&mut [T], E> {
// Despite the similarlty with `DroplessArena`, we cannot reuse their fast case. The reason
// Despite the similarity with `DroplessArena`, we cannot reuse their fast case. The reason
// is subtle: these arenas are reentrant. In other words, `iter` may very well be holding a
// reference to `self` and adding elements to the arena during iteration.
//
Expand All @@ -229,9 +243,15 @@ impl<T> TypedArena<T> {
}
// Move the content to the arena by copying and then forgetting it.
let len = vec.len();
let start_ptr = self.alloc_raw_slice(len);

// SAFETY: After allocating raw storage for exactly `len` values, we
// must fully initialize the storage without panicking, and we must
// also prevent the stale values in the vec from being dropped.
Ok(unsafe {
let start_ptr = self.alloc_raw_slice(len);
// Initialize the newly-allocated storage without panicking.
vec.as_ptr().copy_to_nonoverlapping(start_ptr, len);
// Prevent the stale values in the vec from being dropped.
vec.set_len(0);
slice::from_raw_parts_mut(start_ptr, len)
})
Expand Down Expand Up @@ -584,7 +604,7 @@ impl DroplessArena {
&self,
iter: impl IntoIterator<Item = Result<T, E>>,
) -> Result<&mut [T], E> {
// Despite the similarlty with `alloc_from_iter`, we cannot reuse their fast case, as we
// Despite the similarity with `alloc_from_iter`, we cannot reuse their fast case, as we
// cannot know the minimum length of the iterator in this case.
assert!(size_of::<T>() != 0);

Expand Down
3 changes: 2 additions & 1 deletion compiler/rustc_ast_pretty/src/pprust/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1961,7 +1961,8 @@ impl<'a> State<'a> {
}

fn print_lifetime(&mut self, lifetime: ast::Lifetime) {
self.print_name(lifetime.ident.name)
self.word(lifetime.ident.name.to_string());
self.ann_post(lifetime.ident)
}

fn print_lifetime_bounds(&mut self, bounds: &ast::GenericBounds) {
Expand Down
5 changes: 4 additions & 1 deletion compiler/rustc_lint/src/unused.rs
Original file line number Diff line number Diff line change
Expand Up @@ -805,7 +805,10 @@ trait UnusedDelimLint {

ExprKind::Break(_label, None) => return false,
ExprKind::Break(_label, Some(break_expr)) => {
return matches!(break_expr.kind, ExprKind::Block(..));
// `if (break 'label i) { ... }` removing parens would make `i { ... }`
// be parsed as a struct literal, so keep parentheses if the break value
// ends with a path (which could be mistaken for a struct name).
return matches!(break_expr.kind, ExprKind::Block(..) | ExprKind::Path(..));
}

ExprKind::Range(_lhs, Some(rhs), _limits) => {
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_middle/src/query/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ use rustc_index::IndexVec;
use rustc_lint_defs::LintId;
use rustc_macros::rustc_queries;
use rustc_query_system::ich::StableHashingContext;
use rustc_query_system::query::{QueryMode, QueryStackDeferred, QueryState};
use rustc_query_system::query::{QueryMode, QueryState};
use rustc_session::Limits;
use rustc_session::config::{EntryFnType, OptLevel, OutputFilenames, SymbolManglingVersion};
use rustc_session::cstore::{
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_middle/src/query/plumbing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ macro_rules! define_callbacks {
#[derive(Default)]
pub struct QueryStates<'tcx> {
$(
pub $name: QueryState<$($K)*, QueryStackDeferred<'tcx>>,
pub $name: QueryState<'tcx, $($K)*>,
)*
}

Expand Down
17 changes: 8 additions & 9 deletions compiler/rustc_query_impl/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use rustc_query_system::dep_graph::SerializedDepNodeIndex;
use rustc_query_system::ich::StableHashingContext;
use rustc_query_system::query::{
CycleError, CycleErrorHandling, HashResult, QueryCache, QueryDispatcher, QueryMap, QueryMode,
QueryStackDeferred, QueryState, get_query_incr, get_query_non_incr,
QueryState, get_query_incr, get_query_non_incr,
};
use rustc_span::{ErrorGuaranteed, Span};

Expand Down Expand Up @@ -66,7 +66,7 @@ impl<'tcx, C: QueryCache, const ANON: bool, const DEPTH_LIMIT: bool, const FEEDA

// This is `impl QueryDispatcher for SemiDynamicQueryDispatcher`.
impl<'tcx, C: QueryCache, const ANON: bool, const DEPTH_LIMIT: bool, const FEEDABLE: bool>
QueryDispatcher for SemiDynamicQueryDispatcher<'tcx, C, ANON, DEPTH_LIMIT, FEEDABLE>
QueryDispatcher<'tcx> for SemiDynamicQueryDispatcher<'tcx, C, ANON, DEPTH_LIMIT, FEEDABLE>
where
for<'a> C::Key: HashStable<StableHashingContext<'a>>,
{
Expand All @@ -86,10 +86,7 @@ where
}

#[inline(always)]
fn query_state<'a>(
self,
qcx: QueryCtxt<'tcx>,
) -> &'a QueryState<Self::Key, QueryStackDeferred<'tcx>>
fn query_state<'a>(self, qcx: QueryCtxt<'tcx>) -> &'a QueryState<'tcx, Self::Key>
where
QueryCtxt<'tcx>: 'a,
{
Expand All @@ -98,7 +95,7 @@ where
unsafe {
&*(&qcx.tcx.query_system.states as *const QueryStates<'tcx>)
.byte_add(self.vtable.query_state)
.cast::<QueryState<Self::Key, QueryStackDeferred<'tcx>>>()
.cast::<QueryState<'tcx, Self::Key>>()
}
}

Expand Down Expand Up @@ -211,13 +208,15 @@ where
/// on the type `rustc_query_impl::query_impl::$name::QueryType`.
trait QueryDispatcherUnerased<'tcx> {
type UnerasedValue;
type Dispatcher: QueryDispatcher<Qcx = QueryCtxt<'tcx>>;
type Dispatcher: QueryDispatcher<'tcx, Qcx = QueryCtxt<'tcx>>;

const NAME: &'static &'static str;

fn query_dispatcher(tcx: TyCtxt<'tcx>) -> Self::Dispatcher;

fn restore_val(value: <Self::Dispatcher as QueryDispatcher>::Value) -> Self::UnerasedValue;
fn restore_val(
value: <Self::Dispatcher as QueryDispatcher<'tcx>>::Value,
) -> Self::UnerasedValue;
}

pub fn query_system<'a>(
Expand Down
39 changes: 16 additions & 23 deletions compiler/rustc_query_impl/src/plumbing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ impl<'tcx> HasDepContext for QueryCtxt<'tcx> {
}
}

impl<'tcx> QueryContext for QueryCtxt<'tcx> {
type QueryInfo = QueryStackDeferred<'tcx>;

impl<'tcx> QueryContext<'tcx> for QueryCtxt<'tcx> {
#[inline]
fn jobserver_proxy(&self) -> &Proxy {
&self.tcx.jobserver_proxy
Expand Down Expand Up @@ -93,10 +91,7 @@ impl<'tcx> QueryContext for QueryCtxt<'tcx> {
/// Prefer passing `false` to `require_complete` to avoid potential deadlocks,
/// especially when called from within a deadlock handler, unless a
/// complete map is needed and no deadlock is possible at this call site.
fn collect_active_jobs(
self,
require_complete: bool,
) -> Result<QueryMap<QueryStackDeferred<'tcx>>, QueryMap<QueryStackDeferred<'tcx>>> {
fn collect_active_jobs(self, require_complete: bool) -> Result<QueryMap<'tcx>, QueryMap<'tcx>> {
let mut jobs = QueryMap::default();
let mut complete = true;

Expand Down Expand Up @@ -322,7 +317,7 @@ macro_rules! should_ever_cache_on_disk {
};
}

fn create_query_frame_extra<'tcx, K: Key + Copy + 'tcx>(
fn mk_query_stack_frame_extra<'tcx, K: Key + Copy + 'tcx>(
(tcx, key, kind, name, do_describe): (
TyCtxt<'tcx>,
K,
Expand Down Expand Up @@ -373,18 +368,16 @@ pub(crate) fn create_query_frame<
) -> QueryStackFrame<QueryStackDeferred<'tcx>> {
let def_id = key.key_as_def_id();

let hash = || {
tcx.with_stable_hashing_context(|mut hcx| {
let mut hasher = StableHasher::new();
kind.as_usize().hash_stable(&mut hcx, &mut hasher);
key.hash_stable(&mut hcx, &mut hasher);
hasher.finish::<Hash64>()
})
};
let hash = tcx.with_stable_hashing_context(|mut hcx| {
let mut hasher = StableHasher::new();
kind.as_usize().hash_stable(&mut hcx, &mut hasher);
key.hash_stable(&mut hcx, &mut hasher);
hasher.finish::<Hash64>()
});
let def_id_for_ty_in_cycle = key.def_id_for_ty_in_cycle();

let info =
QueryStackDeferred::new((tcx, key, kind, name, do_describe), create_query_frame_extra);
QueryStackDeferred::new((tcx, key, kind, name, do_describe), mk_query_stack_frame_extra);

QueryStackFrame::new(info, kind, hash, def_id, def_id_for_ty_in_cycle)
}
Expand Down Expand Up @@ -417,7 +410,7 @@ pub(crate) fn encode_query_results<'a, 'tcx, Q>(
}

pub(crate) fn query_key_hash_verify<'tcx>(
query: impl QueryDispatcher<Qcx = QueryCtxt<'tcx>>,
query: impl QueryDispatcher<'tcx, Qcx = QueryCtxt<'tcx>>,
qcx: QueryCtxt<'tcx>,
) {
let _timer = qcx.tcx.prof.generic_activity_with_arg("query_key_hash_verify_for", query.name());
Expand Down Expand Up @@ -445,7 +438,7 @@ pub(crate) fn query_key_hash_verify<'tcx>(

fn try_load_from_on_disk_cache<'tcx, Q>(query: Q, tcx: TyCtxt<'tcx>, dep_node: DepNode)
where
Q: QueryDispatcher<Qcx = QueryCtxt<'tcx>>,
Q: QueryDispatcher<'tcx, Qcx = QueryCtxt<'tcx>>,
{
debug_assert!(tcx.dep_graph.is_green(&dep_node));

Expand Down Expand Up @@ -491,7 +484,7 @@ where

fn force_from_dep_node<'tcx, Q>(query: Q, tcx: TyCtxt<'tcx>, dep_node: DepNode) -> bool
where
Q: QueryDispatcher<Qcx = QueryCtxt<'tcx>>,
Q: QueryDispatcher<'tcx, Qcx = QueryCtxt<'tcx>>,
{
// We must avoid ever having to call `force_from_dep_node()` for a
// `DepNode::codegen_unit`:
Expand Down Expand Up @@ -734,14 +727,14 @@ macro_rules! define_queries {
}

#[inline(always)]
fn restore_val(value: <Self::Dispatcher as QueryDispatcher>::Value) -> Self::UnerasedValue {
fn restore_val(value: <Self::Dispatcher as QueryDispatcher<'tcx>>::Value) -> Self::UnerasedValue {
erase::restore_val::<queries::$name::Value<'tcx>>(value)
}
}

pub(crate) fn collect_active_jobs<'tcx>(
tcx: TyCtxt<'tcx>,
qmap: &mut QueryMap<QueryStackDeferred<'tcx>>,
qmap: &mut QueryMap<'tcx>,
require_complete: bool,
) -> Option<()> {
let make_query = |tcx, key| {
Expand Down Expand Up @@ -825,7 +818,7 @@ macro_rules! define_queries {
// These arrays are used for iteration and can't be indexed by `DepKind`.

const COLLECT_ACTIVE_JOBS: &[
for<'tcx> fn(TyCtxt<'tcx>, &mut QueryMap<QueryStackDeferred<'tcx>>, bool) -> Option<()>
for<'tcx> fn(TyCtxt<'tcx>, &mut QueryMap<'tcx>, bool) -> Option<()>
] =
&[$(query_impl::$name::collect_active_jobs),*];

Expand Down
20 changes: 12 additions & 8 deletions compiler/rustc_query_system/src/dep_graph/graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,11 @@ impl<D: Deps> DepGraph<D> {
/// This encodes a diagnostic by creating a node with an unique index and associating
/// `diagnostic` with it, for use in the next session.
#[inline]
pub fn record_diagnostic<Qcx: QueryContext>(&self, qcx: Qcx, diagnostic: &DiagInner) {
pub fn record_diagnostic<'tcx, Qcx: QueryContext<'tcx>>(
&self,
qcx: Qcx,
diagnostic: &DiagInner,
) {
if let Some(ref data) = self.data {
D::read_deps(|task_deps| match task_deps {
TaskDepsRef::EvalAlways | TaskDepsRef::Ignore => return,
Expand All @@ -532,7 +536,7 @@ impl<D: Deps> DepGraph<D> {
/// This forces a diagnostic node green by running its side effect. `prev_index` would
/// refer to a node created used `encode_diagnostic` in the previous session.
#[inline]
pub fn force_diagnostic_node<Qcx: QueryContext>(
pub fn force_diagnostic_node<'tcx, Qcx: QueryContext<'tcx>>(
&self,
qcx: Qcx,
prev_index: SerializedDepNodeIndex,
Expand Down Expand Up @@ -669,7 +673,7 @@ impl<D: Deps> DepGraphData<D> {
/// This encodes a diagnostic by creating a node with an unique index and associating
/// `diagnostic` with it, for use in the next session.
#[inline]
fn encode_diagnostic<Qcx: QueryContext>(
fn encode_diagnostic<'tcx, Qcx: QueryContext<'tcx>>(
&self,
qcx: Qcx,
diagnostic: &DiagInner,
Expand All @@ -693,7 +697,7 @@ impl<D: Deps> DepGraphData<D> {
/// This forces a diagnostic node green by running its side effect. `prev_index` would
/// refer to a node created used `encode_diagnostic` in the previous session.
#[inline]
fn force_diagnostic_node<Qcx: QueryContext>(
fn force_diagnostic_node<'tcx, Qcx: QueryContext<'tcx>>(
&self,
qcx: Qcx,
prev_index: SerializedDepNodeIndex,
Expand Down Expand Up @@ -843,7 +847,7 @@ impl<D: Deps> DepGraph<D> {
DepNodeColor::Unknown
}

pub fn try_mark_green<Qcx: QueryContext<Deps = D>>(
pub fn try_mark_green<'tcx, Qcx: QueryContext<'tcx, Deps = D>>(
&self,
qcx: Qcx,
dep_node: &DepNode,
Expand All @@ -858,7 +862,7 @@ impl<D: Deps> DepGraphData<D> {
/// A node will have an index, when it's already been marked green, or when we can mark it
/// green. This function will mark the current task as a reader of the specified node, when
/// a node index can be found for that node.
pub(crate) fn try_mark_green<Qcx: QueryContext<Deps = D>>(
pub(crate) fn try_mark_green<'tcx, Qcx: QueryContext<'tcx, Deps = D>>(
&self,
qcx: Qcx,
dep_node: &DepNode,
Expand All @@ -883,7 +887,7 @@ impl<D: Deps> DepGraphData<D> {
}

#[instrument(skip(self, qcx, parent_dep_node_index, frame), level = "debug")]
fn try_mark_parent_green<Qcx: QueryContext<Deps = D>>(
fn try_mark_parent_green<'tcx, Qcx: QueryContext<'tcx, Deps = D>>(
&self,
qcx: Qcx,
parent_dep_node_index: SerializedDepNodeIndex,
Expand Down Expand Up @@ -973,7 +977,7 @@ impl<D: Deps> DepGraphData<D> {

/// Try to mark a dep-node which existed in the previous compilation session as green.
#[instrument(skip(self, qcx, prev_dep_node_index, frame), level = "debug")]
fn try_mark_previous_green<Qcx: QueryContext<Deps = D>>(
fn try_mark_previous_green<'tcx, Qcx: QueryContext<'tcx, Deps = D>>(
&self,
qcx: Qcx,
prev_dep_node_index: SerializedDepNodeIndex,
Expand Down
Loading
Loading