fix(xlang): close field tag validation gaps - #3984
Merged
Merged
Conversation
ayush00git
approved these changes
Aug 26, 2026
2 tasks
chaokunyang
added a commit
that referenced
this pull request
Aug 26, 2026
## Why? PR #3984 added an inherited duplicate-tag regression test whose method name exceeds the repository maximum of 35 characters. ## What does this PR do? - Renames the test method from `testDecodeRejectsInheritedDuplicateTag` to `testRejectsInheritedDuplicateTag`. - Leaves the annotation, test body, coverage, and production code unchanged. ## Related issues Follow-up to #3984. ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Test - `NativeTypeDefEncoderTest#testRejectsInheritedDuplicateTag` passed. ## Benchmark Test-only rename; no production or benchmark path changes.
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.
Why?
PR #3982 established the signed-int32 field-tag protocol range. Follow-up integration checks found a
small set of validation ownership, exact-schema coverage, and documentation gaps that were not part
of the squash-merged boundary.
This PR completes those paths without changing the field-tag wire format introduced by #3982.
What does this PR do?
ignore unexported fields.
15,65551, and536870911across allsupported peers, including normal concrete Java test discovery.
protocol, compiler, and runtime schema guides.
Related issues
Follow-up to #3982.
Does this PR introduce any user-facing change?
Invalid duplicate or out-of-range field-tag schemas are now rejected consistently at their owning
registration or metadata boundary. Existing valid schemas and wire bytes are unchanged.
Test
serializer tests passed.
JavaScript, Python, Rust, Scala, and Swift in both Java codegen modes.
checks passed.
Benchmark
The production changes in this follow-up are Java remote native-TypeDef miss validation, Go
registration-time validation, and Rust
FieldInfoequality. None is reached by the steady-stateserialize/deserialize benchmark loops from #3982, so those paired results remain the causal hot-path
evidence. Every measured runtime/path stayed below the
+1.0%regression ceiling; the largestpositive paired medians were C++ deserialize at
+0.858%and Java static serialize at+0.779%.