Commit graph

304993 commits

Author SHA1 Message Date
bjorn3
f2933b34a8 Remove want_summary argument from prepare_thin
It is always false nowadays. ThinLTO summary writing is instead done by
llvm_optimize.
2025-09-06 18:37:23 +00:00
bjorn3
e3d0b7d648 Remove thin_link_data method from ThinBufferMethods
It is only used within cg_llvm.
2025-09-06 18:37:23 +00:00
bors
bea625f327 Auto merge of #146232 - bjorn3:lto_allocator_shim, r=lqd
Make the allocator shim participate in LTO again

This is likely the cause of the perf regression in https://github.com/rust-lang/rust/pull/145955. It also caused some functional regressions.

Fixes https://github.com/rust-lang/rust/issues/146235
Fixes https://github.com/rust-lang/rust/issues/146239
2025-09-06 15:21:16 +00:00
bjorn3
2cf94b92ca Ensure fat LTO doesn't merge everything into the allocator module 2025-09-06 13:31:41 +00:00
bjorn3
9239d141dc Add test that __rg_oom doesn't get internalized during LTO
Co-Authored-By: Rémy Rakic <remy.rakic+github@gmail.com>
2025-09-06 13:31:41 +00:00
bors
6d5caf3a4a Auto merge of #146267 - matthiaskrgr:rollup-tbz7shx, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - rust-lang/rust#127316 (move pinned version from tracing_core to tracing)
 - rust-lang/rust#144801 (Suggest bounds in more cases, accounting for type parameters referenced in predicate)
 - rust-lang/rust#146211 (Disallow shebang in `--cfg` and `--check-cfg` arguments)
 - rust-lang/rust#146263 (Fix `bump-stage0` build failure, and check-build `bump-stage0` in CI)
 - rust-lang/rust#146266 (miri std tests: skip all of sys::)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-09-06 12:10:21 +00:00
Matthias Krüger
6f5fad5dad
Rollup merge of #146266 - RalfJung:miri-nosys, r=jieyouxu
miri std tests: skip all of sys::

Matches https://github.com/rust-lang/miri-test-libstd/pull/104
2025-09-06 13:03:17 +02:00
Matthias Krüger
8fe82a0e9e
Rollup merge of #146263 - jieyouxu:check-bump-stage0, r=Kobzol
Fix `bump-stage0` build failure, and check-build `bump-stage0` in CI

This PR bumps the `toml` dependency of the `bump-stage0` tool to `0.8.23`, which AFAICT is the highest `toml` version that's present in the r-l/r workspace's `Cargo.lock` already (so we don't introduce _another_ `toml 0.x.*` series). I added some byte-buffer-to-string intermediary to workaround `toml 0.8.*` not having the `toml 0.9.*` `toml::from_slice` API.

To catch obvious build failures of the `src/tools/bump-stage0` tool early, before we find out it can't even build when we really need it to work.

Contexts:

- https://github.com/rust-lang/rust/pull/146250#issue-3388327410
- [#t-release > Bump stage0 rustfmt separately ("one-off") @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/241545-t-release/topic/Bump.20stage0.20rustfmt.20separately.20.28.22one-off.22.29/near/537916615)

Fixes rust-lang/rust#146252.
2025-09-06 13:03:17 +02:00
Matthias Krüger
a0c5e6b041
Rollup merge of #146211 - Urgau:cfg-disallow-shebang, r=fmease
Disallow shebang in `--cfg` and `--check-cfg` arguments

This PR is similar to https://github.com/rust-lang/rust/issues/146130, where we disallowed frontmatter in `--cfg` and `--check-cfg` arguments. While fixing the other one we also discovered that shebang `#!/usr/bin/shebang` are currently also allowed in `--cfg` and `--check-cfg` arguments.

Allowing shebang in them (which are just ignored) was never intended, this PR fixes that by not stripping shebang for `--cfg` and `--check-cfg` arguments.

This is technically a breaking-change, although I don't expect anyone to actually rely on this unintended behavior.

Fixes https://github.com/rust-lang/rust/issues/146130#issuecomment-3246299499
r? fmease
2025-09-06 13:03:16 +02:00
Matthias Krüger
bc0dfaa048
Rollup merge of #144801 - estebank:issue-144734, r=spastorino
Suggest bounds in more cases, accounting for type parameters referenced in predicate

Use a `ty::Visitor` to see if the failed predicate references a type parameter. If it does, then we only suggest adding a bound to an (associated) item only if the referenced parameter is present in its generics.

Provide adding bound suggestion in trait and impl associated functions in cases we previously weren't:

```
error[E0277]: `?` couldn't convert the error to `ApplicationError`
  --> $DIR/suggest-complex-bound-on-method.rs:18:16
   |
LL |         t.run()?;
   |           -----^ the trait `From<<T as Trait>::Error>` is not implemented for `ApplicationError`
   |           |
   |           this can't be annotated with `?` because it has type `Result<_, <T as Trait>::Error>`
   |
note: `ApplicationError` needs to implement `From<<T as Trait>::Error>`
  --> $DIR/suggest-complex-bound-on-method.rs:12:1
   |
LL | enum ApplicationError {
   | ^^^^^^^^^^^^^^^^^^^^^
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
   |
LL |     fn thing<T: Trait>(&self, t: T) -> Result<(), ApplicationError> where ApplicationError: From<<T as Trait>::Error> {
   |                                                                     +++++++++++++++++++++++++++++++++++++++++++++++++
```

Fix rust-lang/rust#144734.
2025-09-06 13:03:15 +02:00
Matthias Krüger
020edbe4cf
Rollup merge of #127316 - klensy:tracing-bump, r=Kobzol
move pinned version from tracing_core to tracing

This PR removes pin from `tracing-core` and moves it to `tracing`, which regressed perf in > 0.1.37 versions.
2025-09-06 13:03:15 +02:00
Ralf Jung
9fc8374c2c miri std tests: skip all of sys:: 2025-09-06 11:07:19 +02:00
bjorn3
0271359768 Make the allocator shim participate in LTO again 2025-09-06 08:35:55 +00:00
Jieyou Xu
312a1240a3
ci: check src/tools/bump-stage0 in pr-check-2
To catch obvious build failures of the `src/tools/bump-stage0` early,
before we find out it can't even build when we really need it to work.
2025-09-06 16:33:12 +08:00
Jieyou Xu
d5e61216a7
bootstrap: add check step for src/tools/bump-stage0 2025-09-06 16:33:11 +08:00
Jieyou Xu
5f372fe7d1
bump-stage0: pick highest common toml version, add a workaround
- We pick the higest common `toml` version used in the r-l/r workspace
  to avoid introducing Yet Another `toml` `0.x` version, which happens
  to be `0.8.23` as of the time of writing.
- We introduce a byte-buffer-to-string workaround for the `toml 0.8.*`
  series that do not have the `toml 0.9.*` series's `toml::from_slice`
  API yet. Not efficient, but this is not perf-critical so it's fine.
2025-09-06 16:33:11 +08:00
bors
0d0f4eac8b Auto merge of #146253 - Kobzol:cargo-lto, r=jieyouxu
Optimize Cargo with LTO

This optimization was "lost" when Cargo was switched away from a `ToolRustcPrivate` to a `ToolTarget` tool.

r? `@jieyouxu`
2025-09-06 06:43:38 +00:00
bors
397f933629 Auto merge of #146071 - npmccallum:cleanup, r=fmease
clean up some old const trait impl syntax

Related to: https://github.com/rust-lang/rust/issues/143874
2025-09-06 03:27:14 +00:00
Nathaniel McCallum
00fcb14e4e
clean up some old const trait impl syntax 2025-09-06 04:35:52 +02:00
bors
545819dbd2 Auto merge of #146258 - tgross35:rollup-4hqggwa, r=tgross35
Rollup of 2 pull requests

Successful merges:

 - rust-lang/rust#146199 (Document Cargo with in-tree rustdoc)
 - rust-lang/rust#146257 (std: Update `wasi` crate dependency)

Failed merges:

 - rust-lang/rust#146200 (Simplify rustdoc-gui tester by calling directly browser-ui-test)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-09-06 00:11:48 +00:00
Trevor Gross
e2698f8c36
Rollup merge of #146257 - alexcrichton:update-wasi-crate, r=tgross35
std: Update `wasi` crate dependency

The recent work on the WASIp2 target being integrated into the standard library (rust-lang/rust#146207, rust-lang/rust#145944) ended up causing a bug in nightly on the target. This [has now been fixed](https://github.com/bytecodealliance/wasi-rs/pull/115) in the `wasi` crate so this commit pulls in the updated version to ensure bindings work correctly.
2025-09-05 20:10:01 -04:00
Trevor Gross
14415c75ad
Rollup merge of #146199 - Kobzol:bootstrap-cargo-doc, r=jieyouxu
Document Cargo with in-tree rustdoc

Fixes https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/nightly.20rust.20doc.20seem.20corrupted.

r? `@jieyouxu`

try-job: dist-x86_64-linux-alt
2025-09-05 20:10:00 -04:00
Alex Crichton
874dbd5d57 std: Update wasi crate dependency
The recent work on the WASIp2 target being integrated into the standard
library ended up causing a bug in nightly on the target. This has now
been fixed in the `wasi` crate so this commit pulls in the updated
version to ensure bindings work correctly.
2025-09-05 17:01:07 -07:00
Urgau
d224d3a8fa Disallow shebang in --cfg and --check-cfg arguments 2025-09-06 00:21:04 +02:00
bors
6c699a3723 Auto merge of #146255 - fmease:rollup-1v0kp8i, r=fmease
Rollup of 11 pull requests

Successful merges:

 - rust-lang/rust#138944 (Add `__isPlatformVersionAtLeast` and `__isOSVersionAtLeast` symbols)
 - rust-lang/rust#139113 (unstable book: in a sanitizer example, check the code)
 - rust-lang/rust#145735 (style-guide: Document absence of trailing whitespace)
 - rust-lang/rust#146041 (tidy: --bless now makes escheck run with --fix)
 - rust-lang/rust#146144 (compiler: Apply target features to the entry function)
 - rust-lang/rust#146225 (Simplify `{f16, f32, f64, f128}::midpoint()`)
 - rust-lang/rust#146234 (change file-is-generated doc comment to inner)
 - rust-lang/rust#146241 (rustc_infer: change top-level doc comment to inner)
 - rust-lang/rust#146242 (Ensure that `--html-after-content` option is used to check `scrape_examples_ice` rustdoc GUI test)
 - rust-lang/rust#146243 (remove couple of redundant clones)
 - rust-lang/rust#146250 (Bump stage0 rustfmt)

Failed merges:

 - rust-lang/rust#146200 (Simplify rustdoc-gui tester by calling directly browser-ui-test)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-09-05 20:49:13 +00:00
León Orell Valerian Liehr
55a62d57ed
Rollup merge of #146250 - fmease:bump-stage0-rustfmt, r=Mark-Simulacrum
Bump stage0 rustfmt

Unblocks rust-lang/rust#146071, cc `@npmccallum.`

Steps to reproduce:

1. Temporarily upgrade `src/tools/bump-stage0`'s `toml` dependency from 0.7 to 0.9 to fix build error (see Zulip topic)
2. Execute `./x run src/tools/bump-stage0`
3. Manually revert changes unrelated to nightly `rustfmt`+`rustc` (the latter needs to be bumped, too, for the driver ([via](https://github.com/rust-lang/rust/pull/146250#discussion_r2325742775)))

r? `@Mark-Simulacrum` as discussed in [#t-release > Bump stage0 rustfmt separately ("one-off")](https://rust-lang.zulipchat.com/#narrow/channel/241545-t-release/topic/Bump.20stage0.20rustfmt.20separately.20.28.22one-off.22.29/with/537916615)
2025-09-05 22:47:24 +02:00
León Orell Valerian Liehr
8f3801f1af
Rollup merge of #146243 - matthiaskrgr:declone, r=lqd
remove couple of redundant clones
2025-09-05 22:47:24 +02:00
León Orell Valerian Liehr
56d99b1a7c
Rollup merge of #146242 - GuillaumeGomez:rustdoc-gui-scrape, r=lolbinarycat
Ensure that `--html-after-content` option is used to check `scrape_examples_ice` rustdoc GUI test

Follow-up of https://github.com/rust-lang/rust/pull/146091.

This test ensures that the spans are correctly handled when a "local source file" is not the first in the file list. To ensure it's actually what's tested, this test checks that the option is actually used by adding an element.

r? `@lolbinarycat`
2025-09-05 22:47:23 +02:00
León Orell Valerian Liehr
910d6be9a4
Rollup merge of #146241 - hkBst:context-1, r=jieyouxu
rustc_infer: change top-level doc comment to inner
2025-09-05 22:47:23 +02:00
León Orell Valerian Liehr
d82ee660d6
Rollup merge of #146234 - hkBst:file-generated-header, r=tgross35
change file-is-generated doc comment to inner

Alternatively this could perhaps be better as a normal comment...
2025-09-05 22:47:22 +02:00
León Orell Valerian Liehr
690753f7d4
Rollup merge of #146225 - Jules-Bertholet:simplify-float-midpoint, r=tgross35
Simplify `{f16, f32, f64, f128}::midpoint()`

`(float_ty::MAX / 2) - (float_ty::MIN_POSITIVE * 2)` equals `(float_ty::MAX / 2) + (float_ty::MIN_POSITIVE * 2)` equals `(float_ty::MAX / 2)`. So these branches are pointless.

CC `@Urgau` who wrote the original implementation in https://github.com/rust-lang/rust/pull/92048; does this seem right?

`@rustbot` label A-floating-point
2025-09-05 22:47:22 +02:00
León Orell Valerian Liehr
1c2d264eb0
Rollup merge of #146144 - heiher:entry-func-features, r=petrochenkov
compiler: Apply target features to the entry function

Fixes rust-lang/rust#146143
2025-09-05 22:47:20 +02:00
León Orell Valerian Liehr
7e189a00eb
Rollup merge of #146041 - lolbinarycat:tidy-escheck-bless, r=Kobzol
tidy: --bless now makes escheck run with --fix

this mirrors how other extra-check tools work.

unsure if this also needs to be done for tsc and es-check.
2025-09-05 22:47:20 +02:00
León Orell Valerian Liehr
9edce86bbd
Rollup merge of #145735 - joshtriplett:style-guide-trailing-whitespace, r=joshtriplett
style-guide: Document absence of trailing whitespace

We didn't previously have a blanket prohibition on trailing whitespace. Adding
one, inspired by discussion in https://github.com/rust-lang/rust/pull/145617 .
2025-09-05 22:47:19 +02:00
León Orell Valerian Liehr
90f51016a6
Rollup merge of #139113 - folkertdev:sanitizer-unstable-book-check-block, r=rcvalle
unstable book: in a sanitizer example, check the code

Use some `#` directives to make sure the code checks on x86_64, and does not produce errors on other platforms. This example still used an older version of `#[naked]`, and because the snippet was ignored that was missed before.

I'm not sure when this gets built on CI exactly, so it might be worthwhile to try and build it for a non-x86_64 architecture to make sure that works. I'm not sure how to verify locally that e.g. on aarch64 this code works without errors/warnings.

try-job: aarch64-apple
try-job: x86_64-msvc-2
2025-09-05 22:47:18 +02:00
León Orell Valerian Liehr
349fbba24f
Rollup merge of #138944 - madsmtm:apple_os_version_check, r=tgross35
Add `__isPlatformVersionAtLeast` and `__isOSVersionAtLeast` symbols

## Motivation

When Objective-C code uses ```@available(...)`,`` Clang inserts a call to [`__isPlatformVersionAtLeast`](https://github.com/llvm/llvm-project/blob/llvmorg-20.1.0/compiler-rt/lib/builtins/os_version_check.c#L276) (`__isOSVersionAtLeast` in older Clang versions). These symbols not being available sometimes ends up causing linker errors. See the new test `tests/run-make/apple-c-available-links` for a minimal reproducer.

The workaround is to link `libclang_rt.osx.a`, see e.g. https://github.com/alexcrichton/curl-rust/issues/279. But that's very difficult for users to figure out (and the backreferences to that issue indicates that people are still running into this in their own projects every so often).

For another recent example, this is preventing `rustc` from using LLVM assertions on macOS, see https://github.com/rust-lang/rust/pull/62592#issuecomment-510670657 and https://github.com/rust-lang/rust/pull/134275#issuecomment-2543067830.

It is also a blocker for [setting the correct minimum OS version in `cc-rs`](https://github.com/rust-lang/rust/issues/136113), since fixing this in `cc-rs` might end up introducing linker errors in places where we weren't before (by default, if using e.g. ```@available(macos`` 10.15, *)`, the symbol usually happens to be left out, since `clang` defaults to compiling for the host macOS version, and thus things _seem_ to work - but the availability check actually compiles down to nothing, which is a huge correctness footgun for running on older OSes).

(My super secret evil agenda is also to expose some variant of ```@available``` in Rust's `std` after https://github.com/rust-lang/rfcs/pull/3750 progresses further, will probably file an ACP for this later. But I believe this PR has value regardless of those future plans, since we'd be making C/Objective-C/Swift interop easier).

## Solution

Implement `__isPlatformVersionAtLeast` and `__isOSVersionAtLeast` as part of the "public ABI" that `std` exposes.

**This is insta-stable**, in the same sense that additions to `compiler-builtins` are insta-stable, though the availability of these symbols can probably be considered a "quality of implementation" detail rather than a stable promise.

I originally proposed to implement this in `compiler-builtins`, see https://github.com/rust-lang/compiler-builtins/pull/794, but we discussed moving it to `std` instead ([Zulip thread](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/Provide.20.60__isPlatformVersionAtLeast.60.20in.20.60std.60.3F/with/507880717)), which makes the implementation substantially simpler, and we avoid gnarly issues with requiring the user to link `libSystem.dylib` (since `std` unconditionally does that).

Note that this does not solve the linker errors for (pure) `#![no_std]` users, but that's _probably_ fine, if you are using ```@available``` to test the OS version on Apple platforms, you're likely also using `std` (and it is still possible to work around by linking `libclang_rt.*.a`).

A thing to note about the implementation, I've choosen to stray a bit from LLVM's upstream implementation, and not use `_availability_version_check` since [it has problems when compiling with an older SDK](https://github.com/llvm/llvm-project/issues/64227). Instead, we use `sysctl kern.osproductversion` when available to still avoid the costly PList lookup in most cases, but still with a fall back to the PList lookup when that is not available (with the PList fallback being is similar to LLVM's implementation).

## Testing

Apple has a lot of different "modes" that they can run binaries in, which can be a bit difficult to find your bearings in, but I've tried to be as thorough as I could in testing them all.

Tested using roughly the equivalent of `./x test library/std -- platform_version` on the following configurations:
- macOS 14.7.3 on a Macbook Pro M2
    - `aarch64-apple-darwin`
    - `x86_64-apple-darwin` (under Rosetta)
    - `aarch64-apple-ios-macabi`
    - `x86_64-apple-ios-macabi` (under Rosetta)
    - `aarch64-apple-ios` (using Xcode's "Designed for iPad" setting)
    - `aarch64-apple-ios-sim` (in iOS Simulator, as iPhone with iOS 17.5)
    - `aarch64-apple-ios-sim` (in iOS Simulator, as iPad with iOS 18.2)
    - `aarch64-apple-tvos-sim` (in tvOS Simulator)
    - `aarch64-apple-watchos-sim` (in watchOS Simulator)
    - `aarch64-apple-ios-sim` (in visionOS simulator, using Xcode's "Designed for iPad" setting)
    - `aarch64-apple-visionos-sim` (in visionOS Simulator)
- macOS 15.3.1 VM
    - `aarch64-apple-darwin`
    - `aarch64-apple-ios-macabi`
- macOS 10.12.6 on an Intel Macbook from 2013
    - `x86_64-apple-darwin`
    - `i686-apple-darwin`
    - `x86_64-apple-ios` (in iOS Simulator)
- iOS 9.3.6 on a 1st generation iPad Mini
    - `armv7-apple-ios` with an older compiler

Along with manually inspecting the output of `version_from_sysctl()` and `version_from_plist()`, and verifying that they actually match what's expected.

I believe the only real omissions here would be:
- `aarch64-apple-ios` on a newer iPhone that has `sysctl` available (iOS 11.4 or above).
- `aarch64-apple-ios` on a Vision Pro using Xcode's "Designed for iPad" setting.

But I don't have the hardware available to test those.

``@rustbot`` label O-apple A-linkage -T-compiler -A-meta -A-run-make

try-job: aarch64-apple
2025-09-05 22:47:17 +02:00
León Orell Valerian Liehr
33baaafa34
Bump stage0 rustfmt 2025-09-05 20:20:09 +02:00
Jakub Beránek
edb92a33d7
Optimize Cargo with LTO 2025-09-05 20:03:08 +02:00
Jakub Beránek
b5c139baed
Fix condition 2025-09-05 19:57:08 +02:00
bors
99317ef14d Auto merge of #146121 - Muscraft:filter-suggestion-parts, r=petrochenkov
fix: Filter suggestion parts that match existing code

While testing my changes to make `rustc` use `annotate-snippets`, I encountered a new `clippy` test failure stemming from [two](https://github.com/rust-lang/rust/pull/145273/files#diff-6e8403e31463539666afbc00479cb416dc767a518f562b6e2960630953ee7da2R275-R278) [suggestion](https://github.com/rust-lang/rust/pull/145273/files#diff-6e8403e31463539666afbc00479cb416dc767a518f562b6e2960630953ee7da2R289-R292) output changes in rust-lang/rust#145273. The new output in these two cases feels like a regression as it is not as clear as the old output, and adds unnecessary information.

Before rust-lang/rust#145273 (`Diff` style)
![before](https://github.com/user-attachments/assets/36f33635-cbce-45f1-823d-0cbe6f0cfe46)

After rust-lang/rust#145273 ("multi-line" style)
![after](https://github.com/user-attachments/assets/d4cb00b8-5a42-436e-9329-db84347138f0)

The reason for the change was that a new suggestion part (which matches existing code) was added on a different line than the existing parts, causing the suggestion style to change from `Diff` to "multi-line". Since this new part matches existing code, no code changes show up in the output for it, but it still makes the suggestion style "multi-line" when it doesn't need to be.

To get the old output back, I made it so that suggestion parts that perfectly match existing code get filtered out.

try-job: aarch64-apple
2025-09-05 17:31:56 +00:00
Jakub Beránek
8c93cdc8e0
Add a comment about the "specialization" feature required because of im-rc 2025-09-05 17:02:12 +02:00
Jakub Beránek
4375e9d313
Add snapshot test for disting compiler docs 2025-09-05 16:24:43 +02:00
Jakub Beránek
a6aa509687
Respect top stage when documenting Cargo 2025-09-05 16:22:52 +02:00
Jakub Beránek
9f9473f201
Allow specialization feature when documenting Cargo 2025-09-05 16:20:53 +02:00
Mads Marquart
846d6a4466 Add __isOSVersionAtLeast and __isPlatformVersionAtLeast symbols
Allows users to link to Objective-C code using `@available(...)`.
2025-09-05 16:18:49 +02:00
Matthias Krüger
81042523c6 remove couple of clones 2025-09-05 15:38:01 +02:00
Guillaume Gomez
b6f8824315 Ensure that --html-after-content option is used to check scrape_examples_ice rustdoc GUI test 2025-09-05 15:13:08 +02:00
Marijn Schouten
0e2224b1bf rustc_infer: change top-level doc comment to inner 2025-09-05 12:43:47 +00:00
bors
9cd272dc85 Auto merge of #146044 - estebank:issue-88727, r=chenyukang
Suggest parentheses when `match` or `if` expression in binop is parsed as statement

```
error[E0308]: mismatched types
  --> $DIR/expr-as-stmt.rs:81:5
   |
LL |     match () { _ => true } && match () { _ => true };
   |     ^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `bool`
   |
help: parentheses are required to parse this as an expression
   |
LL |     (match () { _ => true }) && match () { _ => true };
   |     +                      +
```

Address the common case from rust-lang/rust#88727. The original parse error is still outstanding, but the cases brought up in the thread are resolved.
2025-09-05 12:23:58 +00:00
Marijn Schouten
98e10290c9 change file-is-generated doc comment to inner 2025-09-05 10:08:45 +00:00