Skip to content

Fix debugger visualizer tuple child ordering w/ PDB debug info - #161726

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
Walnut356:pdb_tuple_fields
Aug 25, 2026
Merged

Fix debugger visualizer tuple child ordering w/ PDB debug info#161726
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
Walnut356:pdb_tuple_fields

Conversation

@Walnut356

Copy link
Copy Markdown
Contributor

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with GetChildAtIndex in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the GetChildAtIndex calls, and they all fall under a few safe cases

  1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
  2. used to get field 0 of a struct with only 1 field
  3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc #161657, fixes tests/debuginfo/tuple-struct.rs on windows-msvc

`windows-msvc` `tests/debuginfo` results with this change
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 25, 2026
@rustbot

rustbot commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @Mark-Simulacrum

@Walnut356

Copy link
Copy Markdown
Contributor Author

r? @Kobzol

@rustbot rustbot assigned Kobzol and unassigned Mark-Simulacrum Aug 25, 2026
@rustbot

rustbot commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Kobzol is not on the review rotation at the moment.
They may take a while to respond.

@Kobzol Kobzol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reference: the tuple field names are assigned here.

Thanks! Left one nit, but consider it non-blocking.

@bors delegate

View changes since this review

Comment thread src/etc/lldb_providers.py
str(index), element.GetData(), element.GetType()
)
return self.valobj.GetChildAtIndex(
self.valobj.GetIndexOfChildWithName(f"__{index}")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this perhaps be using self.get_child_index to avoid dupicating the "logic"?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yeah, it saves us a function call and a conditional per field inspected. Not a huge deal in isolation, but with as common as tuples/tuple structs are, it can really add up.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That bad, huh? In that case it would be good to add a comment here, otherwise someone might come and "optimize" it in the future :)

@rust-bors

rust-bors Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

✌️ @Walnut356, you can now approve this pull request!

If @Kobzol told you to "r=me" after making some further change, then please make that change and post @bors r=Kobzol.

View changes since this delegation.

@Walnut356

Copy link
Copy Markdown
Contributor Author

@bors r=Kobzol

@rust-bors

rust-bors Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c9b143 has been approved by Kobzol

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 25, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 25, 2026
Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc rust-lang#161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 25, 2026
Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc rust-lang#161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
rust-bors Bot pushed a commit that referenced this pull request Aug 25, 2026
…uwer

Rollup of 4 pull requests

Successful merges:

 - #161726 (Fix debugger visualizer tuple child ordering w/ PDB debug info)
 - #161729 (miri subtree update)
 - #161724 (Add codegen test for static table search loop unrolling)
 - #161740 (do not compress debuginfo for Cygwin)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 25, 2026
Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc rust-lang#161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 25, 2026
Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc rust-lang#161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 25, 2026
Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc rust-lang#161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 25, 2026
Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc rust-lang#161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
rust-bors Bot pushed a commit that referenced this pull request Aug 25, 2026
…uwer

Rollup of 13 pull requests

Successful merges:

 - #158874 (hir_ty_lowering: fix anon const type recovery)
 - #161443 (add internal DSL for testing binders)
 - #161617 (Add custom allocators to `(try_)map` on `Box`, `Rc`, `Arc`)
 - #161726 (Fix debugger visualizer tuple child ordering w/ PDB debug info)
 - #161729 (miri subtree update)
 - #161745 (make trivial ABI check resilient against new repr)
 - #160871 (Remove `#[rustc_reservation_impl]`)
 - #161180 (Detect missing binding available: add a MaybeIncorrect suggestion)
 - #161522 (test `f16::mul_add` not double-rounding the result)
 - #161631 (Add two comments relating to new-solver performance)
 - #161724 (Add codegen test for static table search loop unrolling)
 - #161740 (do not compress debuginfo for Cygwin)
 - #161750 (vector ABI check: reword so it makes more sense for non-obviously-vector types)
@rust-bors
rust-bors Bot merged commit 70020cc into rust-lang:main Aug 25, 2026
13 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Aug 25, 2026
rust-bors Bot pushed a commit that referenced this pull request Aug 25, 2026
Rollup merge of #161726 - Walnut356:pdb_tuple_fields, r=Kobzol

Fix debugger visualizer tuple child ordering w/ PDB debug info

see: llvm/llvm-project#218613 for an explanation of the issue. tl;dr, PDB fields reflect rustc's reordering, whereas DWARF fields are in source-code-order. This causes issues with `GetChildAtIndex` in cases where both DWARF- and PDB-based types can interact with them.

This PR uses field names to retrieve field indexes, rather than blindly indexing into the field array.

I did a quick scan over the rest of the `GetChildAtIndex` calls, and they all fall under a few safe cases

1. in DWARF or PDB specific providers (mainly enum discriminants, which can't be reordered anyway)
2. used to get field `0` of a struct with only 1 field
3. in the summary provider where we're typically already interacting with the synthetic value and synthetic children anyway

cc #161657, fixes `tests/debuginfo/tuple-struct.rs` on `windows-msvc`

<details><summary>`windows-msvc` `tests/debuginfo` results with this change</summary>

```
failures:
    [debuginfo-lldb] tests\debuginfo\associated-types.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-basic.rs
    [debuginfo-lldb] tests\debuginfo\borrowed-unique-basic.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#no-lto
    [debuginfo-lldb] tests\debuginfo\borrowed-tuple.rs
    [debuginfo-lldb] tests\debuginfo\boxed-struct.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-2.rs
    [debuginfo-lldb] tests\debuginfo\cross-crate-spans.rs
    [debuginfo-lldb] tests\debuginfo\coroutine-locals.rs
    [debuginfo-lldb] tests\debuginfo\box.rs
    [debuginfo-lldb] tests\debuginfo\captured-fields-1.rs
    [debuginfo-lldb] tests\debuginfo\c-style-enum-in-composite.rs
    [debuginfo-lldb] tests\debuginfo\by-value-self-argument-in-trait-impl.rs
    [debuginfo-lldb] tests\debuginfo\destructured-for-loop-variable.rs
    [debuginfo-lldb] tests\debuginfo\dummy_span.rs
    [debuginfo-lldb] tests\debuginfo\evec-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\destructured-fn-argument.rs
    [debuginfo-lldb] tests\debuginfo\destructured-local.rs
    [debuginfo-lldb] tests\debuginfo\generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\issue-22656.rs
    [debuginfo-lldb] tests\debuginfo\basic-types-globals.rs#lto
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unconditional-loop.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-with-macro.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-unique-closure.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-if-let.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scopes-in-block-expression.rs
    [debuginfo-lldb] tests\debuginfo\method-on-generic-struct.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-while.rs
    [debuginfo-lldb] tests\debuginfo\lexical-scope-in-for-loop.rs
    [debuginfo-lldb] tests\debuginfo\name-shadowing-and-scope-nesting.rs
    [debuginfo-lldb] tests\debuginfo\no_mangle-info.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\pretty-slices.rs
    [debuginfo-lldb] tests\debuginfo\packed-struct.rs
    [debuginfo-lldb] tests\debuginfo\reference-debuginfo.rs
    [debuginfo-lldb] tests\debuginfo\simple-struct.rs
    [debuginfo-lldb] tests\debuginfo\simple-lexical-scope.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-variable.rs
    [debuginfo-lldb] tests\debuginfo\simple-tuple.rs
    [debuginfo-lldb] tests\debuginfo\shadowed-argument.rs
    [debuginfo-lldb] tests\debuginfo\struct-with-destructor.rs
    [debuginfo-lldb] tests\debuginfo\strings-and-strs.rs
    [debuginfo-lldb] tests\debuginfo\struct-in-struct.rs
    [debuginfo-lldb] tests\debuginfo\pretty-std-collections.rs
    [debuginfo-lldb] tests\debuginfo\tuple-in-tuple.rs
    [debuginfo-lldb] tests\debuginfo\thread-names.rs#win
    [debuginfo-lldb] tests\debuginfo\vec-slices.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-sendable-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-stack-closure.rs
    [debuginfo-lldb] tests\debuginfo\var-captured-in-nested-closure.rs

test result: FAILED. 244 passed; 52 failed; 223 ignored; 0 measured; 0 filtered out; finished in 13.22s
```
</details>
pull Bot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 26, 2026
…uwer

Rollup of 13 pull requests

Successful merges:

 - rust-lang/rust#158874 (hir_ty_lowering: fix anon const type recovery)
 - rust-lang/rust#161443 (add internal DSL for testing binders)
 - rust-lang/rust#161617 (Add custom allocators to `(try_)map` on `Box`, `Rc`, `Arc`)
 - rust-lang/rust#161726 (Fix debugger visualizer tuple child ordering w/ PDB debug info)
 - rust-lang/rust#161729 (miri subtree update)
 - rust-lang/rust#161745 (make trivial ABI check resilient against new repr)
 - rust-lang/rust#160871 (Remove `#[rustc_reservation_impl]`)
 - rust-lang/rust#161180 (Detect missing binding available: add a MaybeIncorrect suggestion)
 - rust-lang/rust#161522 (test `f16::mul_add` not double-rounding the result)
 - rust-lang/rust#161631 (Add two comments relating to new-solver performance)
 - rust-lang/rust#161724 (Add codegen test for static table search loop unrolling)
 - rust-lang/rust#161740 (do not compress debuginfo for Cygwin)
 - rust-lang/rust#161750 (vector ABI check: reword so it makes more sense for non-obviously-vector types)
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 28, 2026
…uwer

Rollup of 13 pull requests

Successful merges:

 - rust-lang/rust#158874 (hir_ty_lowering: fix anon const type recovery)
 - rust-lang/rust#161443 (add internal DSL for testing binders)
 - rust-lang/rust#161617 (Add custom allocators to `(try_)map` on `Box`, `Rc`, `Arc`)
 - rust-lang/rust#161726 (Fix debugger visualizer tuple child ordering w/ PDB debug info)
 - rust-lang/rust#161729 (miri subtree update)
 - rust-lang/rust#161745 (make trivial ABI check resilient against new repr)
 - rust-lang/rust#160871 (Remove `#[rustc_reservation_impl]`)
 - rust-lang/rust#161180 (Detect missing binding available: add a MaybeIncorrect suggestion)
 - rust-lang/rust#161522 (test `f16::mul_add` not double-rounding the result)
 - rust-lang/rust#161631 (Add two comments relating to new-solver performance)
 - rust-lang/rust#161724 (Add codegen test for static table search loop unrolling)
 - rust-lang/rust#161740 (do not compress debuginfo for Cygwin)
 - rust-lang/rust#161750 (vector ABI check: reword so it makes more sense for non-obviously-vector types)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants