-setdefault will be similar with dict for ScalarMap. But both key and value must be set.
-setdefault will be rejected for MessageMap.
PiperOrigin-RevId: 695768629
Not invoked just yet, as extant users may expect the old `GetOrPromote` pathway.
An incremental Δ for getting message extensions up to parity with proto2.
PiperOrigin-RevId: 695723050
This will make it so touching either file and running cargo run again will automatically rerun protoc (right now if you build once and then touch either the inputs or outputs it'll keep using whatever is there).
PiperOrigin-RevId: 695699195
Both versions are again compatible with WORKSPACE mode on Bazel 8. The version also extends the compatibility down to Bazel 6.
Add repo_name = "com_google_protobuf" to examples/MODULE.bazel. Bazel 6,7,and 8 (in WORKSPACE mode) still expect this is the name of the repo. (Default value of --proto_compiler flag). There's no way to change this without breaking compatibility with WORKSPACE mode.
Remove local_repository(name = protobuf) from WORKSPACE. The repository is now consistently called com_google_protobuf in both WORKSPACE and Bzlmod mode.
Rename uses of @protobuf to @com_google_protobuf.
PiperOrigin-RevId: 695579489
The old behavior requires a prefix of '.' for empty packages like '.Foo'. To not break old behaviors, both 'Foo' and '.Foo' will be supported. The support for leading '.' will be removed around 2026 Jan.
For example:
db.FindFileContainingSymbol('Foo')
db.FindFileContainingSymbol('.Foo') # with a warning
will have same result
PiperOrigin-RevId: 695493356
This is a warning today, as in a future release of Rust this won't be legal to match on floating point values.
As these are C-style unions, there's no signal about what type they are and the matches! is behaving the same as just checking value directly (wouldn't fail to match if a mismatched type was written anyway).
PiperOrigin-RevId: 695488356