Repository navigation
Conversation
Reuse the existing captured PrintfFormat interpolation pipeline for per-hole printf fallbacks, preserving concat fast paths, original hole/specifier ranges, and evaluation timing. Avoid synthetic format-location notifications so foreground checking retains real arity and source ranges. Verify #20757 under fixed SDK/Core/ILC options: first parent runs natively, regression merge/current fail with CaptureFinal1<int>, corrected native timestamp emits exactly 01:02:03 with exit 0. Add shared native/JIT formatting, generic/evaluation and separate-library fixtures, captured IL and FCS diagnostic tests. Keep the original native harness warning-strict; only the compatibility executable allows eight proven baseline warning IDs, all visible, with no new warning signatures. Validation: Release build/pack and Debug/Release compiler builds pass; 67 focused component/IL/diagnostic cases, 15 focused FCS cases, and strict plus compatibility NativeAOT harness pass. Full editor checks pass 74 with 3 unchanged skips. Direct parse/typecheck and non-Claude local expert review pass. Update the 11.0.200 issue-linked release note. No push or remote posting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build captured fallback formats directly from the already parsed hole types. Reuse the existing captured constructor pipeline rather than rechecking synthesized sprintf syntax, preserving NativeAOT execution without false FS3884 warnings or redundant per-hole typechecking. Retain function-format and structured-capture regressions and consolidate foreground diagnostic scenarios. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rgets Normalize printer state, residue and result for every string-rendering dispatch before parsing interpolation holes. Reject invalid printf thunks with FS0001 instead of capturing them with incompatible unit/string format types. Preserve custom PrintfFormat and FormattableString dispatch. Add state/residue diagnostic regressions, valid upcast rendering checks, custom-format controls, foreground diagnostic checks and NativeAOT coverage. Clean Release and Debug solution builds pass; Release interpolation/IL tests pass 80, Debug interpolation tests pass 67, editor tests pass 80 with 3 existing skips in each configuration. Fresh native fixtures return exactly Finished and 01:02:03; expert review reports LGTM. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
✅ Release notes checked
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Retain both release-note entries and the validated NativeAOT captured-format correction. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This branch has not been deployed
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.
Fixes #20757
Description
Restore captured printf formatting for interpolation holes so zero-padded timestamps run under NativeAOT. Preserve interpolation fast paths and reject incorrectly typed printf thunks without spurious function-hole warnings.
Checklist
Test cases added
Performance benchmarks added in case of performance changes
Release notes entry updated: