about summary refs log tree commit diff
path: root/compiler/rustc_builtin_macros/src/edition_panic.rs
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2025-08-13 18:42:59 +0200
committerGitHub <noreply@github.com>2025-08-13 18:42:59 +0200
commitc9c8d0370b2a3d0b2e02bf035fd4b34537759957 (patch)
tree9f8b6e13eaaf03ece385351c6e1a5dfb528f1921 /compiler/rustc_builtin_macros/src/edition_panic.rs
parente7e3a37e9a33a819002d25d7c730843531e0ab1c (diff)
parentdb1a64c93b087c1209a2f1f6d29059f3134ba8e3 (diff)
downloadrust-c9c8d0370b2a3d0b2e02bf035fd4b34537759957.tar.gz
rust-c9c8d0370b2a3d0b2e02bf035fd4b34537759957.zip
Rollup merge of #144955 - lcnr:lazily-update-non-parent-goals, r=BoxyUwU
search graph: lazily update parent goals

Based on top of rust-lang/rust#143054. In the search graph only the last entry is actually mutable and all other entries get lazily mutated when popping child goals.

This simplifies a bunch of possible future optimizations:
- We can try evaluating nested goals and entirely ignore discard their evaluation by simply not calling `fn update_parent_goal`
- Because we only lazily update, tracking the "impact" of a nested goal is easy. The necessary information *has to be* integrated in the `StackEntry` of the current goal, as there is otherwise no way to influence its parents. This makes it easier to avoid rerunning cycle heads if they have only been used in candidates which don't impact the final result of a goal.

r? `````````@compiler-errors````````` `````````@BoxyUwU`````````
Diffstat (limited to 'compiler/rustc_builtin_macros/src/edition_panic.rs')
0 files changed, 0 insertions, 0 deletions