Skip to content

Commit fba2acd

Browse files
authored
Add nested enum descriptor in php rumtime. (protocolbuffers#3009)
1 parent e64b618 commit fba2acd

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

php/src/Google/Protobuf/Internal/DescriptorPool.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ public function addDescriptor($descriptor)
9595
foreach ($descriptor->getNestedType() as $nested_type) {
9696
$this->addDescriptor($nested_type);
9797
}
98+
foreach ($descriptor->getEnumType() as $enum_type) {
99+
$this->addEnumDescriptor($enum_type);
100+
}
98101
}
99102

100103
public function addEnumDescriptor($descriptor)

php/src/Google/Protobuf/descriptor.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,12 @@ public static function buildFromProto($proto, $file_proto, $containing)
210210
$nested_proto, $file_proto, $message_name_without_package));
211211
}
212212

213+
// Handle nested enum.
214+
foreach ($proto->getEnumType() as $enum_proto) {
215+
$desc->addEnumType(EnumDescriptor::buildFromProto(
216+
$enum_proto, $file_proto, $message_name_without_package));
217+
}
218+
213219
// Handle oneof fields.
214220
foreach ($proto->getOneofDecl() as $oneof_proto) {
215221
$desc->addOneofDecl(

php/tests/generated_class_test.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,8 @@ public function testMessageMergeFromInvalidTypeFail()
839839
public function testMessageWithoutNamespace()
840840
{
841841
$m = new TestMessage();
842-
$m->setOptionalNoNamespaceMessage(new NoNameSpaceMessage());
842+
$sub = new NoNameSpaceMessage();
843+
$m->setOptionalNoNamespaceMessage($sub);
843844
$m->getRepeatedNoNamespaceMessage()[] = new NoNameSpaceMessage();
844845

845846
$n = new NoNamespaceMessage();

0 commit comments

Comments
 (0)