Roll toolchain to nightly-2023-04-15#1904
Draft
thedataking wants to merge 13 commits into
Draft
Conversation
Update CI, provisioning, Fenix, metadata, and documentation around the authoritative workspace pin. Keep generated-code and standalone tools pins unchanged.
Use FieldIdx and the target newtype-index syntax while preserving the serialized u32 representation.
Accept only compiler-representation changes: normalized allocation identifiers and shifted MIR statement locations. Graph nodes, edges, permissions, and counts remain unchanged.
Adapt query access, binders, pointer types, place projections, unwind actions, and target MIR terminators without changing instrumentation semantics.
Reconcile the generated AST schema and handwritten builders, folders, token traversal, macro recovery, equivalence, node IDs, and matcher support with nightly-2023-04-15.
Adapt compiler queries, type reflection, substitutions, ownership analysis, resolution, type maps, and driver callbacks to the target nightly.
Update rewrite, printing, literal, macro, item, ownership, retype, static, and reorganization paths for the target AST APIs. Preserve source tokens by reparsing item headers when rustc does not collect them.
Make the retype string fixture self-contained and require formerly broken macro rewrites and reflected output to compile successfully.
Record macro-argument traversal for literal suffixes and typed matchers, successful nested expression rewrites with correct precedence, and reflected Vec types without the default allocator parameter.
Adapt aliases, binders, predicates, local classification, scalar conversions, MIR terminators, def lookup, and dataflow while preserving pointer and permission semantics.
Handle non-semantic PlaceMention statements, order split loads by MIR location, preserve precise rewrite origins, and update type/shim lowering and target diagnostic matching.
eda7e70 to
4acaf81
Compare
Contributor
|
Are we still keeping the instrumentation code updated? We had a discussion at some point to let that fall behind. |
ahomescu
reviewed
Jul 14, 2026
| enum LitKind { | ||
| Str(sym, style), | ||
| ByteStr(bytes), | ||
| ByteStr(#[rewrite_ignore] bytes, style), |
Contributor
There was a problem hiding this comment.
Interesting, I wonder why it decided to add the attribute here.
Contributor
Author
From the meeting discussion: we'll update it for this roll. For next roll, I'll disable unused components first. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This rolls the compiler-coupled workspace from
nightly-2022-11-03tonightly-2023-04-15, updates CI/provisioning/MSRV metadata, and migrates the rustc-private APIs used by PDG, instrumentation, refactor, and analyzer. Generated Edition 2021/2024 pins and the standalone stable tools remain unchanged.The most important review areas, highest risk first:
3a9d1da6f,2260637ea,147f7bb86). This reconciles the generated AST model with rustc, adds traversal for interpolated macro arguments, and reparses item headers when rustc does not retain tokens. These paths can silently alter or lose syntax, so macro recovery, node IDs, spans, precedence, and item-header rewriting deserve close attention.147f7bb86fixes a pre-existing reversed edge direction in nonterminal ID matching that the macro rewrites depend on. AutoRetype also gained small behavior changes (skipping pre-annotated locals and pre-existing typeck errors), noted in the2260637eacommit message.8f444659e,9866d7ede). The target compiler splits some expression loads across MIR statements, folds user variables intoLocalKind::Temp, and emitsPlaceMention. The new ordering/origin logic fixes the current fixtures, but this is where confidence is lowest for larger real-world control-flow graphs. Skipping closure body owners also deserves scrutiny in case downstream analysis expects closures to be handled independently.f5ceb92ef). Query, place-projection, pointer-type, terminator, and unwind APIs changed. End-to-end instrumentation passes locally, but drop/unwind behavior on code outside the existing fixtures remains a meaningful risk.0b7f451e9,f5cc7f419). PDG changes are limited to allocation identifiers and shifted MIR statement locations; graph topology, permissions, and counts are unchanged. The five refactor snapshots reflect newly working macro traversal/precedence and omission of the defaultVecallocator parameter rather than bulk compiler-output churn.Bisection note: the source cannot support both rustc-private API surfaces at once, so the commits from the pin bump (
249ab2ebe) through the last migration commit (9866d7ede) intentionally do not build individually. When bisecting across this range, skip it:git bisect skip 249ab2ebe..9866d7ede.Local validation includes warning-denied workspace checks/docs/release builds, 220/220 nextest tests, the full legacy refactor suite, 146 translation successes with two expected failures, analyzer FileCheck and old-PDG compatibility tests, debug/release PDG snapshots, end-to-end instrumentation/PDG analysis, Miri, stable Rust 1.70 builds, stable tools, and installed-binary smoke tests under a conflicting default toolchain.