Skip to content

Handle FIXED32/FIXED64 as unsigned in ProtoCelValueConverter#1073

Open
andrewparmet wants to merge 1 commit into
google:mainfrom
andrewparmet:fix-fixed32-fixed64-celvalue
Open

Handle FIXED32/FIXED64 as unsigned in ProtoCelValueConverter#1073
andrewparmet wants to merge 1 commit into
google:mainfrom
andrewparmet:fix-fixed32-fixed64-celvalue

Conversation

@andrewparmet
Copy link
Copy Markdown

The CEL spec maps proto fixed32/fixed64 to CEL's uint. The CelValue path via ProtoCelValueConverter.fromProtoMessageFieldToCelValue lacks FIXED32/FIXED64 and falls through to normalizePrimitive, producing Integer/Long. Overload resolution at runtime then failed with "No matching overload" when the checker said uint but the runtime served a signed integer.

Add the missing case labels alongside UINT32/UINT64 and extend the ProtoMessageValue test suite to cover fixed32/fixed64 selection.

The CEL spec maps proto fixed32/fixed64 to CEL's uint. cel-java's
checker (DescriptorMappings) and its legacy DescriptorMessageProvider
path (ProtoAdapter) both correctly map them. The CelValue path via
ProtoCelValueConverter.fromProtoMessageFieldToCelValue missed
FIXED32/FIXED64 and fell through to normalizePrimitive, producing
Integer/Long. Overload resolution at runtime then failed with "No
matching overload" when the checker said uint but the runtime served
a signed integer.

Add the missing case labels alongside UINT32/UINT64 and extend the
ProtoMessageValue test suite to cover fixed32/fixed64 selection.
@l46kok l46kok added the ready to pull Pulls the pending PR into Critique label Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready to pull Pulls the pending PR into Critique

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants