diff --git a/src/google/protobuf/util/type_resolver_util.cc b/src/google/protobuf/util/type_resolver_util.cc index ca8c661b31113..ace37f1eab4c1 100644 --- a/src/google/protobuf/util/type_resolver_util.cc +++ b/src/google/protobuf/util/type_resolver_util.cc @@ -252,11 +252,14 @@ void ConvertFieldDescriptor(absl::string_view url_prefix, } Syntax ConvertSyntax(Edition edition) { - if (edition >= Edition::EDITION_2023) { - return Syntax::SYNTAX_EDITIONS; + switch (edition) { + case Edition::EDITION_PROTO2: + return Syntax::SYNTAX_PROTO2; + case Edition::EDITION_PROTO3: + return Syntax::SYNTAX_PROTO3; + default: + return Syntax::SYNTAX_EDITIONS; } - // TODO This should propagate proto3 as expected. - return Syntax::SYNTAX_PROTO2; } void ConvertEnumDescriptor(const EnumDescriptor& descriptor, Enum* enum_type) { diff --git a/src/google/protobuf/util/type_resolver_util_test.cc b/src/google/protobuf/util/type_resolver_util_test.cc index 77cd15156db3d..5417633e087f2 100644 --- a/src/google/protobuf/util/type_resolver_util_test.cc +++ b/src/google/protobuf/util/type_resolver_util_test.cc @@ -460,8 +460,7 @@ TEST_F(DescriptorPoolTypeResolverSyntaxTest, SyntaxProto3) { Type type; ASSERT_TRUE( resolver_->ResolveMessageType(GetTypeUrl("test.MyMessage"), &type).ok()); - // TODO This should be proto3. - EXPECT_EQ(type.syntax(), Syntax::SYNTAX_PROTO2); + EXPECT_EQ(type.syntax(), Syntax::SYNTAX_PROTO3); EXPECT_EQ(type.edition(), ""); }