)]}'
{
  "commit": "56ecb157e273584817926613dff74475c126e43d",
  "tree": "9d00235bf9621e53c7e5da1d1e461741d195c26d",
  "parents": [
    "8bd29964c063f7ba355c24a6316423f97ac127f4",
    "4d3f0db260f04193434d1cc2fc389edfe096544f"
  ],
  "author": {
    "name": "Matthias Krüger",
    "email": "476013+matthiaskrgr@users.noreply.github.com",
    "time": "Sun Apr 12 08:15:46 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Apr 12 08:15:46 2026 +0200"
  },
  "message": "Rollup merge of #153630 - arferreira:fix-doc-hidden-reexport-diagnostic-path, r\u003djackh726\n\nDeprioritize doc(hidden) re-exports in diagnostic paths\n\nFixes rust-lang/rust#153477.\n\nThis is the other half of rust-lang/rust#99698, which fixed the case where the *parent module* is `#[doc(hidden)]` but left the case where the re-export itself is `#[doc(hidden)]` as a FIXME (with a tracking test in `dont-suggest-doc-hidden-variant-for-enum/hidden-child.rs`).\n\nThe problem: when a crate does `#[doc(hidden)] pub use core::error::Error`, diagnostics pick up the hidden re-export path instead of the canonical one. For example, `snafu::Error` instead of `std::error::Error`.\n\nTwo changes:\n\nIn `visible_parent_map`, the `add_child` closure now checks whether the re-export itself is `#[doc(hidden)]` via `reexport_chain` and sends it to `fallback_map`, same treatment as doc-hidden parents and underscore re-exports.\n\n`should_encode_attrs` now returns `true` for `DefKind::Use`. Without this, `#[doc(hidden)]` on `use` items was never written to crate metadata, so `is_doc_hidden` always returned `false` cross-crate. This was the actual root cause, the check in `visible_parent_map` alone isn\u0027t enough if the attribute isn\u0027t in the metadata.\n\nThe existing FIXME test now serves as the regression test. The `.stderr` goes from suggesting `hidden_child::__private::Some(1i32)` to just `Some(1i32)`.\n\ncc @eggyal\n",
  "tree_diff": []
}
